Linux下 fio磁碟壓測實錄

2021-08-08 05:33:22 字數 3826 閱讀 4433

專業的測試磁碟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....