專業的測試磁碟io效能的軟體:
1、fio 【推薦使用】
2、iometer
fio的使用:參考
注意,我先使用yum安裝的fio,測試時候報錯,建議使用最新版的fio工具編譯安裝。方法如下:
yum install libaio libaio-devel 需要先安裝2個包
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
盤為例,測試截圖
同步模式隨機寫入
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
盤為例,測試截圖
本文永久更新鏈結位址:
linux下https壓測工具go wrk安裝使用
在系統維護過程中,平時免不了要對系統進行效能壓測,http協議壓測工具比較多,例如ab等,https壓測可以使用go wrk.go wrk安裝步驟 為了使包的匯入方式不變,我們需要在src目錄下面構造目錄結構 安裝net mkdir p gopath src golang.org x cd gopa...
linux 壓測工具
1.ab是apachebench命令的縮寫。jmeter 壓測工具 ab是apache自帶的壓力測試工具。ab非常實用,它不僅可以對apache伺服器進行 訪問壓力測試,也可以對或其它型別的伺服器進行壓力測試。比如nginx tomcat iis等 2.ab的原理 ab命令會建立多個併發訪問執行緒,...
linux 壓測測試步驟詳解
壓力測試環境準備 1.與生產環境配置一直或者減半 壓力測試環境測試 1.系統可執行切確定可執行系統版本 2.該版本本省不壓測情況下,系統運 況 這種時候,可能已經存在效能問題,沒有壓測的必要 壓力測試資料準備 1.本次使用excel批量匯入資料庫 2.通過loadrunner呼叫介面初始化資料 3....