日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

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

1.磁盤性能測試工具FIO

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

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

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

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

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

2.測試建議與注意事項

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

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

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

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

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

參數說明:

參數名

說明

取值樣例

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 緩沖區。默認設置是僅在初始時填充并重

用該數據。

N/A

norandommap

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

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

N/A

randrepeat

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

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

0

group_reporting

多個 job 并發時,打印整個 group 的統計值。

N/A

name

job 的名稱。

fio-read

size

I/O 測試的尋址空間。

100GB

filename

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

/dev/sdb

zero_buffers?

用0初始化系統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:隨機讀/寫測試,能反映硬盤的時延性能
執行以下命令,測試硬盤的隨機讀時延

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

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

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

執行以下命令,測試 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:順序讀/寫測試,能反映硬盤的吞吐性能
執行以下命令,測試硬盤的順序讀吞吐帶寬。

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

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

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

執行以下命令,測試 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 性能
執行以下命令,測試硬盤的隨機讀 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

執行以下命令,測試硬盤的隨機寫 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的全部內容,希望文章能夠幫你解決所遇到的問題。

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