


Praktischer Kampf: Festplatten-Io-Lese- und Schreibtest unter Linux
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.
rw=[mode] rwmixwrite=30 在混合读写的模式下,写占30% mode read 顺序读 write 顺序写 readwrite 顺序混合读写 randwrite 随机写 randread 随机读 randrw 随机混合读写
Installation
yumdownloader --destdir=/tmp --resolve fio rpm -ivh /tmp/*.rpm rpm -ivh fio-3.7-2.el7.x86_64.rpm
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 每个进程生成文件的数量。
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
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
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
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
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
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
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
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
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
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
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=磁盘利用率
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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 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:

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.

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 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

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

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

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.
