FIO read測試結果偏離
工作中發現一個fio問題,測試組測試出來的數據read速度一個是17.0G/s,一個是13.2G/s。要知道我後臺只有24塊7.2k RPM的機械硬盤啊!怎麽也不可能有這樣的速度。
回家之後我模擬了實際情況,結果重現了這個情況:
首先執行fio -filename=/tmp/test -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=1M -size=20G -numjobs=50 -runtime=60 -group_reporting -name=sqe_100write
測得結果WRITE: bw=81.8MiB/s (85.7MB/s), 81.8MiB/s-81.8MiB/s (85.7MB/s-85.7MB/s), io=4948MiB (5188MB), run=60523-60523msec
註意:fio write僅寫入4948MiB,結果正常。
然後執行fio -filename=/tmp/test -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=1M -size=20G -numjobs=50 -runtime=60 -group_reporting -name=sqe_100read
前33s read速度約為200M/s,之後速度飆升至10GB/s,最終結果達到6354MiB/s。【我現在的內存就是DDR3-800,帶寬就是6.4GB/s】
結果為什麽錯誤?
因為第一次執行fio的時候已經write了/tmp/test文件,但是僅寫入了4948MiB,然後我偷懶,直接使用這個文件進行fio read測試。fio檢查文件存在並且大小合適,所以fio read首先讀取了4948MiB,剩下的就不知道從哪裏讀取了!可能從內存!所以得到的結果炒雞高,偏離了實際數據。
記錄問題,以後避免。
FIO read測試結果偏離