日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

性能测试工具_磁盘性能测试工具fio

發(fā)布時間:2025/3/19 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 性能测试工具_磁盘性能测试工具fio 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.磁盤性能測試工具FIO

FIO是常見的磁盤性能測試工具,使用 FIO 時,建議配合使用 libaio 的 I/O 引擎進行測試。

一般使用以下指標衡量硬盤的性能:

IOPS:每秒讀/寫次數,單位為次(計數)。存儲設備的底層驅動類型決定了不同的 IOPS。

吞吐量:每秒的讀寫數據量,單位為MB/s。

時延:I/O 操作的發(fā)送時間到接收確認所經過的時間,單位為秒。

2.測試建議與注意事項

l建議在空閑的、未保存重要數據的硬盤上進行 FIO 測試,并在測試完后重新制作被測硬盤的文件系統(tǒng)。

l測試硬盤性能時,建議直接測試裸數據盤(如 /dev/vdb)。

l測試文件系統(tǒng)性能時,推薦指定具體文件測試(如 /data/file)。

l請不要在系統(tǒng)盤上進行 FIO 測試,避免損壞系統(tǒng)重要文件。

l為避免底層文件系統(tǒng)元數據損壞導致數據損壞,請不要在業(yè)務數據盤上進行測試。

參數說明:

參數名

說明

取值樣例

bs

每次請求的塊大小。取值包括4k、8k及16k等

4k

ioengine

I/O 引擎。推薦使用 Linux 的異步 I/O 引擎。

libaio

direct

指定 direct 模式。

True(1)表示指定 O_DIRECT 標識符,忽略 I/O 緩存,數據直寫。

False(0)表示不指定 O_DIRECT 標識符。

默認為 True(1)。

1

rw

讀寫模式。取值包括順序讀(read)、順序寫(write)、隨機讀

(randread)、隨機寫(randwrite)、混合隨機讀寫(randrw)和混合

順序讀寫(rw,readwrite)。

read

time_based

指定采用時間模式。無需設置該參數值,只要 FIO 基于時間來運行。

N/A

runtime

指定測試時長,即 FIO 運行時長

600

refill_buffers

FIO 將在每次提交時重新填充 I/O 緩沖區(qū)。默認設置是僅在初始時填充并重

用該數據。

N/A

norandommap

在進行隨機 I/O 時,FIO 將覆蓋文件的每個塊。若給出此參數,則將選擇新

的偏移量而不查看 I/O 歷史記錄。

N/A

randrepeat

本隨機序列是否可重復,True(1)表示隨機序列可重復,False(0)表示隨

機序列不可重復。默認為 True(1)。

0

group_reporting

多個 job 并發(fā)時,打印整個 group 的統(tǒng)計值。

N/A

name

job 的名稱。

fio-read

size

I/O 測試的尋址空間。

100GB

filename

測試對象,即待測試的磁盤設備名稱。

/dev/sdb

zero_buffers?

用0初始化系統(tǒng)buffer

nrfiles=8

每個進程生成文件的數量

3.常見測試方案

3.1讀性能測試用例

普通模式:

#4k隨機讀

$ fio --bs=4k --ioengine=libaio --iodepth=128 --direct=1 --rw=randwrite --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#8k隨機讀

$ fio --bs=8k --ioengine=libaio --iodepth=128 --direct=1 --rw=randwrite --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#64k隨機讀

$ fio --bs=64k --ioengine=libaio --iodepth=128 --direct=1 --rw=randwrite --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#1M隨機讀

$ fio --bs=1m --ioengine=libaio --iodepth=128 --direct=1 --rw=randwrite --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

3.2寫性能測試用例

普通模式:

#4k隨機寫

$ fio --bs=4k --ioengine=libaio --iodepth=128 --direct=1 --rw=randwrite --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#8k隨機寫

$ fio --bs=8k --ioengine=libaio --iodepth=128 --direct=1 --rw=randwrite --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#64k隨機寫

$ fio --bs=64k --ioengine=libaio --iodepth=128 --direct=1 --rw=randwrite --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#1M隨機寫

$ fio --bs=1m --ioengine=libaio --iodepth=128 --direct=1 --rw=randwrite --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

3.3吞吐測試用例

4M順序寫

$ fio --bs=4m --ioengine=libaio --iodepth=128 --direct=1 --rw=write --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#4M順序讀

$ fio --bs=4m --ioengine=libaio --iodepth=128 --direct=1 --rw=read --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

3.4 混合讀寫測試用例

普通模式:

#4k隨機讀寫 70%讀30%寫

$ fio --bs=4k --ioengine=libaio --iodepth=128 --direct=1 --rw=randrw –rwmixread=70? --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#4k隨機讀寫 70%寫30%讀

$ fio --bs=4k --ioengine=libaio --iodepth=128 --direct=1 --rw=randrw –rwmixread=30? --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#4k隨機讀寫 50%讀50%寫

$ fio --bs=4k --ioengine=libaio --iodepth=128 --direct=1 --rw=randrw –rwmixread=50? --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#64k隨機讀寫 70%讀30%寫

$ fio --bs=64k --ioengine=libaio --iodepth=128 --direct=1 --rw=randrw –rwmixread=70? --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#64k隨機讀寫 70%寫30%讀

$ fio --bs=64k --ioengine=libaio --iodepth=128 --direct=1 --rw=randrw –rwmixread=30? --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

#64k隨機讀寫 50%讀50%寫

$ fio --bs=64k --ioengine=libaio --iodepth=128 --direct=1 --rw=randrw –rwmixread=50? --time_based --runtime=300 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-write --size=1G --filename=/dev/vdb

4.云硬盤測試方案

4.1時延性能測試用例

bs = 4k iodepth = 1:隨機讀/寫測試,能反映硬盤的時延性能
執(zhí)行以下命令,測試硬盤的隨機讀時延

fio -bs=4k -ioengine=libaio -iodepth=1 -direct=1 -rw=randread -time_based -runtime=600? -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-lat --size=10G -filename=/dev/vdb

執(zhí)行以下命令,測試硬盤的隨機寫時延。

fio -bs=4k -ioengine=libaio -iodepth=1 -direct=1 -rw=randwrite -time_based -runtime=600? -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-lat --size=10G -filename=/dev/vdb

執(zhí)行以下命令,測試 SSD 云硬盤的隨機混合讀寫時延性能。

fio --bs=4k --ioengine=libaio --iodepth=1 --direct=1 --rw=randrw --time_based --runtime=100 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-read --size=1G --filename=/dev/vdb

測試結果如下圖所示:

4.2吞吐性能測試用例

bs = 128k iodepth = 32:順序讀/寫測試,能反映硬盤的吞吐性能
執(zhí)行以下命令,測試硬盤的順序讀吞吐帶寬。

fio -bs=128k -ioengine=libaio -iodepth=32 -direct=1 -rw=read -time_based -runtime=600? -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-read-throughput --size=10G -filename=/dev/vdb

執(zhí)行以下命令,測試硬盤的順序寫吞吐帶寬。

fio -bs=128k -ioengine=libaio -iodepth=32 -direct=1 -rw=write -time_based -runtime=600? -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-write-throughput --size=10G -filename=/dev/vdb

執(zhí)行以下命令,測試 SSD 云硬盤的順序讀吞吐性能。

fio --bs=128k --ioengine=libaio --iodepth=32 --direct=1 --rw=read --time_based --runtime=100 --refill_buffers --norandommap --randrepeat=0 --group_reporting --name=fio-rw --size=1G --filename=/dev/vdb

測試結果如下圖所示

4.3 IOPS性能測試用例

bs = 4k iodepth = 32:隨機讀/寫測試,能反映硬盤的 IOPS 性能
執(zhí)行以下命令,測試硬盤的隨機讀 IOPS。

fio -bs=4k -ioengine=libaio -iodepth=32 -direct=1 -rw=randread -time_based -runtime=600? -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-iops --size=10G -filename=/dev/vdb

執(zhí)行以下命令,測試硬盤的隨機寫 IOPS。

fio -bs=4k -ioengine=libaio -iodepth=32 -direct=1 -rw=randwrite -time_based -runtime=600? -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-iops --size=10G -filename=/dev/vdb

測試 SSD 云硬盤的隨機讀 IOPS 性能。如下圖所示:

總結

以上是生活随笔為你收集整理的性能测试工具_磁盘性能测试工具fio的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。