如何在Linux中測試IO性能?在Linux中測試IO性能
回答
工具:FIO
鏈路:http://freshmeat.net/projects/fio/
測試物理磁盤IO:
./fio examples/disk-zone-profile
組參數: 順序R/W:RW =讀或RW =寫 隨機數r/w:rw = randread或rw = randwrite
IO和文件系統基準測試是一個複雜的主題。在任何情況下都沒有單一的基準測試工具。下面是關於不同的基準測試工具小概述:
塊存儲:
- IOMeter - 高度可定製的,並允許協調多個客戶端。需要用於協調應用程序的Windows PC。由英特爾開發。在Linux上,由於提交方法並不是最優的,因此可以用一小撮鹽取得最大比例的舊版本(至少2006.07.27及更早版本)。
文件系統(合成):
- FFSB - 靈活的文件系統基準。 Linux非常整潔的基準測試。良好的工作量定製。 NFS基準測試(net-ffsb)有點不合適。
- Filebench - 功能非常強大,但最初是爲Solaris開發的。 Linux支持不好。
- sysbench - 主要是數據庫基準測試工具,也是基本的文件系統基準測試工具。
- bonnie - 似乎已過時。
- bonnie++ - Bonnie的C++端口。容易,但似乎不是非常可定製的。
文件系統(工作量):
- 郵戳 - 模擬郵件服務器的IO性能。太小以至於不能處理好IO系統。
Stony Brook University和IBM沃森實驗室都發表了有關文件系統基準測試中"Transaction of Storage"一個高度推薦的期刊論文,其中他們提出不同的基準和他們的長處和短處:A nine year study of file system and storage benchmarking。文章明確指出,大多數基準的結果至少是有問題的。
的說明:是問題的編程有關係嗎?也許不是,但也許是。我花了很多時間對我開發的系統的IO性能進行基準測試。至少對我來說,關於如何對這些東西進行基準測試的問題與編程有很大關係。請:不要從您的角度關閉所有與開發/編程相關的問題。其他開發人員的觀點可能會有所不同。
您需要指定您正在測試的內容,否則基準測試只會誤導。 IO性能的不同方面需要您選擇優化以及使用不同的參數。
您的系統參數:
- 存儲裝置:HDD,SSD(哪個?),RAID(其?)
- 文件系統,塊大小,軸頸模式
- 文件緩存,髒的閾值,量內存
- IO調度,其可調
- 數量的CPU
- 內核版本
您的測試參數:
- 讀取或寫入性能?
- 連續或隨機?
- 1個線程還是多個?
- 請求的大小
- 優化吞吐量或請求延遲?
有一個很好的程序來測試Unix上稱爲IORATE的塊存儲IO。你可以在iorate.org上獲得一份副本。
它可以生成複雜的混合IO,包括用於分層存儲測試的重用(命中)和熱區。
iorate.org似乎處於脫機狀態,但下載仍可通過https: //sites.google.com/site/vwiorate/home – Stickley 2017-12-24 12:42:32
看看IOZONE:
如果你想讀出的HPC集羣上現實使用的白皮書,請參閱本PDF,36頁: http://i.dell.com/sites/content/business/solutions/hpcc/en/Documents/Dell-NSS-NFS-Storage-solution-final.pdf
dd if=/dev/sda of=/dev/null
讓它運行幾分鐘,然後用ctrl + C來停止它。它將打印驅動器/控制器的讀取傳輸速度。這是您可以從驅動器中獲得的最大讀取速度。
sysbench的
見http://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench
例
sysbench --test=fileio --file-total-size=150G prepare
sysbench --test=fileio --file-total-size=150G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
它還可以測試CPU,內存,線程和數據庫服務器的性能,
這真棒。
或測試軟件java寫的:http://www.dacapobench.org/
,如果你需要一個快速的方法不安裝任何東西的麻煩。這是我用寫入速度測試方法:
dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
和輸出是這樣的
[email protected]:/# dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 4.86922 s, 221 MB/s
另外: 刪除test文件後,該收回額外空間使用
一些解釋:
bs = block size
count = the no of blocks to be written
調整這些參數以根據服務器規格更改文件的大小以及您想要寫入的時間。
讀取速度正如gtsouk所建議的那樣,可以使用/ dev/null作爲輸出來檢查。
當您完成時,不要忘記進行sudo rm測試! – 2016-01-11 21:22:29
- 1. 關於linux IO性能
- 2. 在Windows和Linux的IO性能
- 3. 如何指定目錄在linux測試項目中執行IO測試
- 4. 在C中測試linux的CAP_FOWNER能力?
- 5. 單元測試中的性能測試
- 6. 性能測試
- 7. 性能測試
- 8. 測試性能
- 9. VB.Net IO性能
- 10. 如何在Java中測試IO問題?
- 11. VS2010中的性能測試
- 12. 測試閏秒,在Linux中
- 13. Cython性能測試
- 14. Docker性能測試
- 15. Jmeter - 性能測試
- 16. Silverlight性能測試
- 17. JMeter - 性能測試
- 18. Redis性能測試
- 19. CUDA性能測試
- 20. Jmeter性能測試:
- 21. iOS - 性能測試?
- 22. 文件IO性能
- 23. 在飛鏢中測試性能
- 24. 如何在android中測試性能?
- 25. 如何在C#中測試性能?
- 26. InnoDB在測試環境中的性能
- 27. 單元測試,重構,IO
- 28. 如果性能測試太慢,性能測試會失敗嗎?
- 29. 在性能測試中自動生成測試數據-Jmeter
- 30. 性能測試對戰單元測試
+1 - 良好的工具清單和交易存儲紙是一個很好的參考。基於網絡的文件系統測試(例如NFS)的另一個潛在的有用工具是fstress:http://www.cs.duke.edu/ari/fstress/ – 2009-07-29 15:03:41