iotop是top和iostat程序的混合體,能夠顯示系統中所有運行進程並將進程根據I/O統計信息排序。
這個軟件使用了Linux內核的一些新特性,所以需要2.6.20或者更新的內核。
一般默認情況下沒有安裝這個程序,安裝方法:
[root@host2 ~]# yum -y install iotop
安裝完成后,直接輸入iotop就可以看到信息:
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/s Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 0.00 B/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % systemd --switched-root --system --deserialize 21 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 5 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H] 7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 8 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_bh]
…………
…………
各個參數說明:
-o, --only只顯示正在產生I/O的進程或線程。除了傳參,可以在運行過程中按o生效。
-b, --batch非交互模式,一般用來記錄日志。
-n NUM, --iter=NUM設置監測的次數,默認無限。在非交互模式下很有用。
-d SEC, --delay=SEC設置每次監測的間隔,默認1秒,接受非整形數據例如1.1。
-p PID, --pid=PID指定監測的進程/線程。
-u USER, --user=USER指定監測某個用戶產生的I/O。
-P, --processes僅顯示進程,默認iotop顯示所有線程。
-a, --accumulated顯示累積的I/O,而不是帶寬。
-k, --kilobytes使用kB單位,而不是對人友好的單位。在非交互模式下,腳本編程有用。
-t, --time 加上時間戳,非交互非模式。
-q, --quiet 禁止頭幾行,非交互模式。有三種指定方式。
-q 只在第一次監測時顯示列名
-qq 永遠不顯示列名。
-qqq 永遠不顯示I/O匯總。
交互按鍵:
和top命令類似,iotop也支持以下幾個交互按鍵。
left和right方向鍵:改變排序。
r:反向排序。
o:切換至選項--only。
p:切換至--processes選項。
a:切換至--accumulated選項。
q:退出。
i:改變線程的優先級。
一些常用輸入例子:
#時間刷新間隔3秒,輸出3次 [root@host2 ~]# iotop -d 3 -n 3 #非交互式,輸出3次,間隔3秒,輸出到屏幕,也可輸出到日志文本,用於監控某時間段的io信息 [root@host2 ~]# iotop -botq -n 3 -d 3 #非交互式,輸出pid為53754 [root@host2 ~]# iotop -botq -p53754