Maison > Article > tutoriels informatiques > Combat pratique : test de lecture et d'écriture du disque dur sous Linux
fio, également connu sous le nom de Flexible IO Tester, est une application écrite par Jens Axboe.
Jens est le responsable du sous-système block IO dans le noyau Linux.
FIO est un outil utilisé pour tester les performances du système de fichiers réseau et du disque. Il est souvent utilisé pour vérifier les modèles de machines et comparer les performances du système de fichiers. Il envoie automatiquement des commandes fio à une liste de machines du cluster et collecte les IOPS pour les petits fichiers et les données de débit pour les gros fichiers.
rw=[mode] rwmixwrite=30 在混合读写的模式下,写占30% mode read 顺序读 write 顺序写 readwrite 顺序混合读写 randwrite 随机写 randread 随机读 randrw 随机混合读写
yumdownloader --destdir=/tmp --resolve fio rpm -ivh /tmp/*.rpm rpm -ivh fio-3.7-2.el7.x86_64.rpm
说明: 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 每个进程生成文件的数量。
Test de la bande passante d'écriture aléatoire
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
Test de latence d'écriture aléatoire 4K :
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
Test d'IOPS en écriture aléatoire 4k :
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
Test de la bande passante de lecture 4k :
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
Test de latence de lecture aléatoire 4k :
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
Test d'IOPS en lecture aléatoire 4k :
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
Lecture aléatoire :
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
Écrivez au hasard :
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
Lire dans l'ordre :
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
Lecture et écriture aléatoires hybrides :
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=磁盘利用率
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!