題:
Ubuntu Server上的命令行工具可查看磁盤IO統計信息?
Undo
2014-02-06 05:41:09 UTC
view on stackexchange narkive permalink

我有一台運行Ubuntu Server 12.04的服務器,我想查看磁盤IO統計信息。我已經嘗試過top和htop,但是它們都不輸出類似於IO的數據。有命令行工具可以做到這一點嗎?

這可能是意外的,但是htop具有所有必要的IO監視,但默認情況下未顯示
六 答案:
#1
+23
Johnride
2014-02-06 05:59:57 UTC
view on stackexchange narkive permalink

您可能正在尋找 iotop。它提供您正在尋找的每個過程的信息。如果運行最新的內核,則需要以超級用戶權限運行它,因為對NET_ADMIN權限的一些更改已於一年前完成。只需安裝並運行 sudo iotop

screenshot of iotop in action

Bwm-ng,當您循環選擇可用方法時,也可以輸出一些磁盤I / O統計信息。與iotop相比,Linux上的bwm-ng的優點是您不需要NET_ADMIN功能,因此默認情況下它將以普通用戶身份運行。如圖所示,它提供了每個設備的信息。

bwm-ng disk i-o

如果要獲取磁盤的生命週期統計信息,請嘗試 smartctl -a / dev /您的磁盤/代碼

用sudo安裝`bwm-ng` apt install bwm-ng`並用`bwm-ng -i disk`運行
#2
+6
Anon
2014-09-22 12:36:35 UTC
view on stackexchange narkive permalink

htop 可以顯示每個進程的I / O速率,但是您需要添加 IO_READ_RATE / IO_WRITE_RATE / IO_RATE 列之一。

我特別喜歡`IO_RATE`列,因為它結合了兩個信息。
#3
+4
Franck Dernoncourt
2014-04-24 04:13:44 UTC
view on stackexchange narkive permalink

您可以使用 pidstat(免費和開源):

說明

pidstat命令用於監視當前由Linux內核管理的進程和線程。它也可以監視那些進程和線程的子代。

使用-d選項,pidstat可以報告I / O統計信息,前提是您擁有帶有該選項的最新Linux內核(2.6.20+)。編譯進CONFIG_TASK_IO_ACCOUNTING。因此,假設您的系統正在經歷繁重的I / O,並且您想知道哪些任務正在生成它們

enter image description here

#4
+3
Franck Dernoncourt
2014-06-22 03:13:07 UTC
view on stackexchange narkive permalink

您可以使用 iostat

  • 免費和開源
  • sudo apt-get install -y sysstat

iostat-dx3 將顯示自從系統在第一個報告中啟動以來的擴展設備統計信息,以及在後續報告中直至中斷的最後3秒的增量

enter image description here

'的含義:

  • 設備:此列為設備(
  • tps:指示每秒發送到設備的傳輸次數。
  • Blk_read / s:指示從設備讀取的數據量,表示為
  • Blk_wrtn / s:指示以每秒的塊數表示的寫入設備的數據量。
  • Blk_read:塊的總數
  • Blk_wrtn:寫入的總塊數。
  • kB_read / s:表示從設備讀取的數據量,以每秒千字節為單位。
  • kB_wrtn / s :表示以每秒千字節為單位表示寫入設備的數據量。
  • kB_read:讀取的千字節總數。
  • kB_wrtn:寫入的千字節總數。
  • li>
  • MB_read / s:表示從設備讀取的數據量,以每秒兆字節表示。
  • MB_wrtn / s:表示寫入設備的數據量,以兆字節/秒錶示。
  • MB_read:讀取的兆字節總數。
  • MB_wrtn:寫入的兆字節總數。
  • rrqm / s:每個讀取請求合併的讀取請求數
  • wrqm / s:每秒合併到設備中的寫入請求數。
  • r / s:讀取請求數
  • w / s:每秒發出給設備的寫請求數。
  • rsec / s:讀取的扇區數每秒從設備中獲取。
  • wsec / s:每秒寫入設備的扇區數。
  • rkB / s:每秒從設備讀取的千字節數。
  • wkB / s :每秒寫入設備的千字節數。
  • rMB / s:每秒從設備讀取的兆字節數。
  • wMB / s:寫入的兆字節數
  • avgrq-sz:發出到設備的請求的平均大小(以扇區為單位)。
  • avgqu-sz:的平均隊列長度為
  • 等待:發出給要服務的設備的I / O請求的平均時間(以毫秒為單位)。這包括隊列中的請求所花費的時間以及為請求服務所花費的時間。
  • svctm:發布給設備的I / O請求的平均服務時間(以毫秒為單位)。
  • %util:向設備發出I / O請求的CPU時間百分比(設備的帶寬利用率)。當此值接近100%時會發生設備飽和。

(PS:iotop +1,這是我使用最多的那個)

#5
+2
Nemo
2015-10-10 13:58:41 UTC
view on stackexchange narkive permalink

如果要查看I / O的總體當前狀態和性能,以我的經驗,最簡單,最清晰的就是 atop (大多數發行版中都打包了): atop view

您只需閱讀頂部的“ DSK”和“ LVM”行,然後查看發生了什麼。如果您的I / O壓力很大,它們會變成紅色並且很容易發現。這樣,您可以在不到一秒鐘的時間內查看是否遇到I / O問題,讀寫問題,什麼驅動器等等。

其他答案也都很好。我通常使用 htop 來確定什麼過程出錯(如果有的話), iotop 進行更集中的測量, iostat 進行長時間測量和 pidstat 監視特定過程。

#6
+1
Elder Geek
2016-02-22 20:56:46 UTC
view on stackexchange narkive permalink

我喜歡 dstat

Dstat是vmstat,iostat和ifstat的多功能替代品。 Dstat克服了一些限制,並添加了一些額外的功能。

Dstat允許您立即查看所有系統資源,可以將磁盤使用情況與控制器的中斷相結合來進行比較,或者可以比較網絡帶寬數量

Dstat還會在列中為您提供最詳細的信息,並清楚指示輸出的大小和單位。

Dstat的獨特之處在於,它可以讓您為某個磁盤集聚合一組設備的塊設備吞吐量,或者為一組接口聚合網絡帶寬,即。您可以看到組成單個文件系統或存儲系統的所有塊設備的吞吐量。

Dstat允許將其數據直接寫入CSV文件,以供OpenOffice,Gnumeric或Excel導入和使用。

dstat

上面是命令 dstat -D total,sda,sdb,sdc, sdd,sde

有關更多信息,請查看手冊頁 man dstat

不幸的是,它尚未更新為可與Python 3一起使用。
實際上是dstat:https://github.com/dagwieers/dstat/issues/118
@seanlinsley https: // github.com / rpodgorny / dstat / tree / python3有一些初步工作。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...