linux 測試磁盤iops 方法詳解


一、FIO安裝 
wget http://brick.kernel.dk/snaps/fio-2.0.7.tar.gz 
yum -y install libaio-devel 
tar -zxvf fio-2.0.7.tar.gz 
cd fio-2.0.7 
make  && make install 
 
二、隨機讀測試:
[root@localhost ~]#  fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=15G -numjobs=20 -runtime=60 -group_reporting -name=mytest
說明: 
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        每個進程生成文件的數量。 
 
 
 
順序讀: 
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest 
隨機寫: 
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest 
順序寫: 
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest 
混合隨機讀寫: 
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop 
 
 
 
測試吞吐量
yum -y install hdparm
hdparm -Tt --direct /dev/sdb1  #紅色部分可改
釋義:
-t 評估硬盤的讀取效率。
-T 評估硬盤快取的讀取效率。





歡迎加入QQ群一起討論Linux、開源等技術





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM