Inhaltsverzeichnis
Installation" >Installation
Anleitung" >Anleitung
Heim Computer-Tutorials Computerwissen Praktischer Kampf: Festplatten-Io-Lese- und Schreibtest unter Linux

Praktischer Kampf: Festplatten-Io-Lese- und Schreibtest unter Linux

Feb 19, 2024 pm 03:40 PM
io 读写 fio

Konzept

fio, auch bekannt als Flexible IO Tester, ist eine Anwendung von Jens Axboe.

Jens ist der Betreuer des Block-IO-Subsystems im Linux-Kernel.

FIO ist ein Tool zum Testen der Netzwerkdateisystem- und Festplattenleistung. Es wird häufig zur Überprüfung von Maschinenmodellen und zum Vergleich der Dateisystemleistung verwendet. Es sendet automatisch FIO-Befehle an eine Liste von Clustermaschinen und sammelt IOPS für kleine Dateien und Durchsatzdaten für große Dateien.

Praktischer Kampf: Festplatten-Io-Lese- und Schreibtest unter Linux

rw=[mode]
rwmixwrite=30 在混合读写的模式下,写占30%

mode
read 顺序读
write 顺序写
readwrite 顺序混合读写
randwrite 随机写
randread 随机读
randrw 随机混合读写
Nach dem Login kopieren

Installation

yumdownloader --destdir=/tmp --resolve fio
rpm -ivh /tmp/*.rpm
rpm -ivh fio-3.7-2.el7.x86_64.rpm
Nach dem Login kopieren

Anleitung

说明:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机写和读的I/O
bs=16k 单次io的块文件大小为16k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。
numjobs=30 本次的测试线程为30.
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。
ioengine=psync io引擎使用pync方式
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息。
此外
lockmem=1g 只使用1g内存进行测试。
zero_buffers 用0初始化系统buffer。
nrfiles=8 每个进程生成文件的数量。
Nach dem Login kopieren

Zufällige Schreibbandbreite testen

fio --name=wbw --filename=/data/sui_ji_xie --numjobs=4 
--bs=128k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=randwrite 
--group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30
Nach dem Login kopieren

Testen Sie die zufällige 4K-Schreiblatenz:

fio --name=wlat --filename=/data/4k_sui_ji_xie --numjobs=1 --runtime=30 
--bs=4k --size=4G --ioengine=libaio --direct=1 --norandommap --randrepeat=0 
-rw=randwrite --group_reporting --iodepth=1 --iodepth_batch_complete=0
Nach dem Login kopieren

Testen Sie 4k Random Write IOPS:

fio --name=wiops --filename=/data/4k_sui_ji_xie_iops --numjobs=4 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap 
--rw=randwrite --group_reporting --iodepth=512 --iodepth_batch=128 
--iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30
Nach dem Login kopieren

Testen Sie die 4K-Lesebandbreite:

fio --name=rbw --filename=/data/4k_sui_ji_du --numjobs=4 
--bs=128k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap 
--rw=randread --group_reporting --iodepth=512 --iodepth_batch=128 
--iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30
Nach dem Login kopieren

Testen Sie die 4K-Zufallsleselatenz:

fio --name=rlat --filename=/data/4k_sui_ji_du_yanchi --numjobs=1 --runtime=30 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --rw=randread 
--group_reporting --iodepth=1 --iodepth_batch_complete=0
Nach dem Login kopieren

Testen Sie 4k Random Read IOPS:

fio --name=riops --filename=/data/4k_sui_ji_du_iops --numjobs=4 
--bs=4k --size=4G --ioengine=libaio --direct=1 --randrepeat=0 --norandommap --rw=randread 
--group_reporting --iodepth=512 --iodepth_batch=128 --iodepth_batch_complete=128 --gtod_reduce=1 --runtime=30
Nach dem Login kopieren

Zufällige Lektüre:

fio -filename=/data/sui_ji_du -iodepth=1 -ioengine=libaio -direct=1 -rw=randread -bs=4k -size=1G -numjobs=10 -runtime=20 -group_reporting -name=test-rand-read
Nach dem Login kopieren

Schreiben Sie nach dem Zufallsprinzip:

fio -filename=/data/sui_ji_xie -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting -name=test-rand-write
Nach dem Login kopieren

In der Reihenfolge lesen:

fio -filename=/data/shun_xu_du -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
Nach dem Login kopieren

Hybrides zufälliges Lesen und Schreiben:

fio -filename=/data/hun_he_du_xie -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=10G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
Nach dem Login kopieren
io=执行了多少M的IO
bw=平均IO带宽
iops=IOPS
runt=线程运行时间
slat=提交延迟
clat=完成延迟
lat=响应时间
bw=带宽
cpu=利用率
IO depths=io队列
IO submit=单个IO提交要提交的IO数
IO complete=Like the above submit number, but for completions instead.
IO issued=The number of read/write requests issued, and how many of them were short.
IO latencies=IO完延迟的分布

io=总共执行了多少size的IO
aggrb=group总带宽
minb=最小.平均带宽.
maxb=最大平均带宽.
mint=group中线程的最短运行时间.
maxt=group中线程的最长运行时间.

ios=所有group总共执行的IO数.
merge=总共发生的IO合并数.
ticks=Number of ticks we kept the disk busy.
in_queue=花费在队列上的总共时间.
util=磁盘利用率
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPraktischer Kampf: Festplatten-Io-Lese- und Schreibtest unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie behebe ich den Fehler „undefiniert: io.ReadAll' in Golang? Wie behebe ich den Fehler „undefiniert: io.ReadAll' in Golang? Jun 25, 2023 am 10:01 AM

Während des Entwicklungsprozesses mit Golang stoßen wir häufig auf Fehler. Einer davon ist „undefiniert:io.ReadAll“. Dieser Fehler wird hauptsächlich durch die Verwendung veralteter Methoden verursacht. In diesem Artikel wird erläutert, wie Sie diesen Fehler beheben können. Schauen wir uns zunächst an, warum dieser Fehler auftritt. Vor golang1.15 gab es im io-Paket keine ReadAll-Methode. Wenn wir diese Methode verwenden, fordert der Compiler „undefiniert:io.Re“ auf

Verwendung von PHP zum Implementieren von Daten-Caching-, Lese- und Schreibfunktionen Verwendung von PHP zum Implementieren von Daten-Caching-, Lese- und Schreibfunktionen Sep 05, 2023 pm 05:45 PM

Verwendung von PHP zum Implementieren von Daten-Caching und Lese-/Schreibfunktionen. Durch Caching können häufig verwendete Daten im Speicher gespeichert werden, um die Lesegeschwindigkeit von Daten zu erhöhen. In PHP können wir verschiedene Methoden verwenden, um Daten-Caching sowie Lese- und Schreibfunktionen zu implementieren. In diesem Artikel werden zwei gängige Methoden vorgestellt: die Verwendung von Datei-Caching und die Verwendung von Speicher-Caching. 1. Beim Datei-Caching werden Daten zum späteren Lesen in Dateien gespeichert. Im Folgenden finden Sie einen Beispielcode, der Datei-Caching zum Lesen und Schreiben von Daten verwendet:

Was bedeutet Linux IO? Was bedeutet Linux IO? Mar 24, 2023 am 09:43 AM

Linux io bezieht sich auf eine Dateioperation. Unter Linux besteht eine Datei aus einer Reihe von Binärströmen. Während des Informationsaustauschs führen wir alle Datensende- und -empfangsvorgänge für diese Ströme aus. Diese Vorgänge werden als E/A-Vorgänge bezeichnet. Da Linux einen virtuellen Speichermechanismus verwendet, muss der Kernel über Systemaufrufe angefordert werden, um E/A-Vorgänge abzuschließen.

Praktischer Kampf: Festplatten-Io-Lese- und Schreibtest unter Linux Praktischer Kampf: Festplatten-Io-Lese- und Schreibtest unter Linux Feb 19, 2024 pm 03:40 PM

Concept fio, auch bekannt als FlexibleIOTester, ist eine von JensAxboe geschriebene Anwendung. Jens ist der Betreuer von blockIOsubsystem im LinuxKernel. FIO ist ein Tool zum Testen der Netzwerkdateisystem- und Festplattenleistung. Es wird häufig zur Überprüfung von Maschinenmodellen und zum Vergleich der Dateisystemleistung verwendet. Es sendet automatisch FIO-Befehle an eine Liste von Clustermaschinen und sammelt IOPS für kleine Dateien und Durchsatzdaten für große Dateien. rw=[mode]rwmixwrite=30 Im gemischten Lese- und Schreibmodus macht das Schreiben 30 % aus

Verwenden Sie die Funktion io/ioutil.WriteFile, um eine Zeichenfolge in eine Datei zu schreiben und Dateiberechtigungen und Einrückungsformat festzulegen Verwenden Sie die Funktion io/ioutil.WriteFile, um eine Zeichenfolge in eine Datei zu schreiben und Dateiberechtigungen und Einrückungsformat festzulegen Jul 24, 2023 pm 06:21 PM

Verwenden Sie die Funktion io/ioutil.WriteFile, um eine Zeichenfolge in eine Datei zu schreiben und die Dateiberechtigungen und das Einrückungsformat festzulegen. In der Go-Sprache können Sie mithilfe der Funktion WriteFile im Paket io/ioutil problemlos eine Zeichenfolge in eine Datei schreiben. Gleichzeitig können wir auch Dateiberechtigungen und Einrückungsformate festlegen, um unterschiedliche Anforderungen zu erfüllen. Hier ist ein Beispielcode, der zeigt, wie Sie mit der WriteFile-Funktion in eine Datei schreiben und Berechtigungen und Einrückungsformat festlegen: packagemainim

Wie behebe ich den Fehler „undefiniert: io.TeeReader' in Golang? Wie behebe ich den Fehler „undefiniert: io.TeeReader' in Golang? Jun 25, 2023 am 09:51 AM

Bei der Entwicklung mit Golang stoßen wir häufig auf verschiedene Probleme und Fehlermeldungen. Eines der häufigsten Probleme ist der Fehler „undefiniert:io.TeeReader“. Dieser Fehler tritt normalerweise beim Kompilieren des Programms auf und kann manchmal frustrierend sein. In diesem Artikel erfahren Sie, wie Sie dieses Problem lösen, damit Sie die Golang-Entwicklungsarbeit reibungslos durchführen können. Schauen wir uns zunächst an, was genau dieser Fehler bedeutet. wenn wir es verwenden

Enthüllung des Innenlebens von Java-Dateioperationen Enthüllung des Innenlebens von Java-Dateioperationen Feb 28, 2024 am 08:22 AM

Dateisystem-APIDie internen Prinzipien von Java-Dateioperationen stehen in engem Zusammenhang mit der Dateisystem-API des Betriebssystems. In Java werden Dateioperationen vom Modul java.nio.file im Paket java.NIO bereitgestellt. Dieses Modul bietet eine Kapselung der Dateisystem-API, sodass Java-Entwickler eine einheitliche API verwenden können, um Dateioperationen auf verschiedenen Betriebssystemen durchzuführen. Dateiobjekt Wenn ein Java-Programm auf eine Datei zugreifen muss, muss es zunächst ein java.nio.file.Path-Objekt erstellen. Das Path-Objekt stellt einen Pfad im Dateisystem dar, der ein absoluter Pfad oder ein relativer Pfad sein kann. Sobald das Path-Objekt erstellt wurde, können Sie es verwenden, um verschiedene Eigenschaften der Datei abzurufen, beispielsweise den Namen

Was sind die Lese- und Schreibvorgänge bei der Erstellung von Java IO-Streams? Was sind die Lese- und Schreibvorgänge bei der Erstellung von Java IO-Streams? May 14, 2023 am 08:22 AM

Das Konzept des E/A-Streams kann zunächst als die Übertragung von Daten in: 1234567 verstanden werden und diese von der Hallo-Datei in die Haha-Datei übertragen Das heißt, es handelt sich um eine Byte-für-Byte-Übertragung. Dies ist der allgemeine Prozess, bei dem der IO-Stream jedes Byte lesen kann Art der Datei. Zum Beispiel: Textdateien, Bilder, MP3-Songs, Videos usw. Da der IO-Stream Byte für Byte gelesen wird, müssen wir die Byte-Einzelbyte-Variable verwenden, um die Länge zu erhalten. Wenn Sie zu viel Inhalt erhalten, müssen Sie das entsprechende Array verwenden. Die dem IO-Stream entsprechende Methode muss in allen IO-Stream-Methoden geschrieben werden.

See all articles