如何找到實體磁碟可以支援的最大I/O?
我的應用程式正在執行 I/O,我可以找到實際的使用 Linux 指令的吞吐量 (Blk_wrtn/s)。但我怎麼才能找到我可以達到的最大限制呢?我想知道是否可以進一步加載。
答案1
顯然,使用 Unix 工具是最簡單的方法。您可以透過建立測試案例來測量最大操作,並使用適當的工具來測量其效能。可以在這裡找到一個很好的資源:LINUX - 測試儲存的讀寫速度
sudo hdparm -tT /dev/sdX
例如作為閱讀測驗。
並測量寫:
dd if=/dev/random of=<some file on the hd> bs=8k count=10000; sync;
# Hit CONTROL-C after 5 seconds to get results
# 65994752 bytes (66 MB) copied, 21.8919 s, 3.0 MB/s
flag
筆記
正如評論中指出的,該dd
命令還測量文件系統甚至/dev/random
.它確實測量環境的寫入性能,但這在很大程度上取決於硬碟性能。
答案2
Blk_wrtn/s 實際上取決於工作負載的類型。線性寫入要快得多,隨機寫入可能會很慢。所以你無法說出一個數字,但有很多工具可以模擬和基準測試不同的工作負載,例如 iozone、dbench。
現在為了監控目前的工作負載,我通常使用iostat。例如:
iostat -x 10
最後一列是 %util,如果它低於 100,您仍然可以在那裡放置一些 IO 負載。當然,您總是希望有一些儲備,因此根據工作負載的穩定性和所需的響應能力,60-90% 是一個現實的目標。
答案3
您可以使用基準測試工具,例如邦妮++
從手冊頁
Bonnie++ 是一個測試硬碟和檔案系統效能或缺乏效能的程式。有許多不同類型的檔案系統操作,不同的應用程式使用不同程度的檔案系統操作。 Bonnie++ 測試了其中的一些,並且每個測試都會給出每秒完成的工作量以及所花費的 CPU 時間百分比的結果。對於效能結果而言,數字越高越好,對於CPU 使用率而言,數字越低越好(注意,就CPU 使用率而言,效能結果得分為2000、CPU 結果為90% 的配置比效能結果為1000、CPU 使用率為60 的配置要好%)。