2021-05-12 14:32:11
Linux下 fio磁碟壓測實錄
專業的測試磁碟IO效能的軟體:
1、fio 【推薦使用】
2、iometer
fio的使用:
參考
http://www.linuxidc.com/Linux/2017-04/143255.htm
http://www.linuxidc.com/Linux/2017-04/143251.htm
注意,我先使用yum安裝的fio,測試時候報錯,建議使用最新版的fio工具編譯安裝。方法如下:
yum install libaio libaio-devel 需要先安裝2個包
新版的 fio-2.1.4 原始碼包下載 http://brick.kernel.dk/snaps/
tar xf fio-2.1.4.tar.gz
cd fio-2.1.4
./configure
make 即可在當前目錄下生成fio可執行檔案。
fio的幾個引數:
filename=/bdata/test.big 測試檔名稱,通常選擇需要測試的盤所在的目錄。
direct=1 測試過程繞過機器自帶的buffer。使測試結果更真實。
rw=randwrite 測試隨機寫的I/O
rw=randrw 測試隨機寫和讀的I/O
bs=4k 單次io的塊檔案大小為4k
size=2g 本次的測試檔案大小為2g,以每次4k的io進行測試。
numjobs=64 本次的測試執行緒為64. 【建議設定為CPU的CORE數量一致】
runtime=20 測試時間為20秒,如果不寫則一直將2g檔案分4k每次寫完為止。
ioengine=psync io引擎使用pync方式 ,此外還有libaio 非同步方式。
rwmixwrite=30 在混合讀寫的模式下,寫佔30%
group_reporting 關於顯示結果的,匯總每個進程的資訊。
sync=1 設定非同步io
fsync=1 一個io就同步資料
幫助命令:
fio --help
fio --cmdhelp 等等
# 準備個2GB的測試用的檔案
dd if=/dev/zero of=/bdata/test.big bs=4k count=524288 # 通常在需要測試的那個磁碟下面生成一個這種測試用的大檔案
測試隨機讀寫:
fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write
測試順序讀取:
fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio --direct=1 --rw=read --bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting --name=test-read
測試順序寫效能
fio --filename=/bdata/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=write -bs=1m -size=2g -numjobs=4 -runtime=20 -group_reporting -name=test-write
測試隨機讀:
fio --filename=/root/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread -bs=4k -size=2G -numjobs=64 -runtime=20 -group_reporting -name=test-rand-read
測試隨機寫:
fio --filename=/root/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write
採用同步IO的隨機寫:
fio --filename=/root/rndwrite -iodepth=64 -ioengine=psync -direct=1 -rw=randwrite -bs=4k -size=2G -numjobs=32 -runtime=20 -group_reporting -name=test-rand-write
其他:
# 4k,100%讀寫:
fio --filename=/dev/sdx --direct=1 --rw=randrw --refill_buffers --norandommap --randrepeat=0 --ioengine=libaio --bs=4k --rwmixread=100 --iodepth=16 --numjobs=16 --runtime=60 --group_reporting --name=4ktest
# 8k,70%讀取,30%寫入:
fio --filename=/dev/sdx --direct=1 --rw=randrw --refill_buffers --norandommap --randrepeat=0 --ioengine=libaio --bs=8k --rwmixread=70 --iodepth=16 --numjobs=16 --runtime=60 --group_reporting --name=8k7030test
在阿里雲SSD測試時候,使用libaio方式能達到較高的IOPS,使用psync的話,IOPS下降的很嚴重。從網上其他測試資料來看,非同步的libaio比同步的psync方式效能高15倍左右。
附帶一個MySQL DELL物理機的測試情況:
1 aio非同步模式隨機寫入5G資料
測試命令:
fio --filename=/root/rndwrite -iodepth=64-ioengine=libaio -direct=1 -rw=randwrite -bs=4k -size=5G -numjobs=64-runtime=20 -group_reporting -name=test-rand-write
Samsung SSD 750 EVO 500GB盤為例,測試截圖
2 psync同步模式隨機寫入5G資料
測試命令:
fio --filename=/root/rndwrite -iodepth=64-ioengine=psync -direct=1 -rw=randwrite -bs=4k -size=5G -numjobs=64 -runtime=20-group_reporting -name=test-rand-write
10.0.36.4 Samsung SSD 750 EVO 500GB盤為例,測試截圖
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-04/143258.htm
相關文章