iotop命令是一個用來監視磁盤I/O使用狀況的top類工具。iotop具有與top相似的UI,其中包括PID、用戶、I/O、進程等相關信息。Linux下的IO統計工具如iostat,nmon等大多數是只能統計到per設備的讀寫情況,如果你想知道每個進程是如何使用IO的就比較麻煩,使用iotop命令可以很方便的查看。
與iostat工具比較,iostat是系統級別的IO監控,而iotop是進程級別IO監控
注意,iotop的安裝有前提條件(如果操作系統不滿足這些條件,iotop無法正確安裝):
1:內核版本為2.6.20或更高版本 2:Python 2.7或更高的版本
iotop參數
輸入iotop -h
可查看使用幫助
-o:只顯示有io操作的進程 -b:批量顯示,無交互,主要用作記錄到文件。 -n NUM:顯示NUM次,主要用於非交互式模式。 -d SEC:間隔SEC秒顯示一次。 -p PID:監控的進程pid。接進程號,監視指定進程,只會輸出該進程的統計信息。 -u USER:監控的進程用戶。 -k 使用千字節而不是人類友好單位
iotop使用
終端輸入命令iotop -k
查看到的效果如下圖。
說明:
Total DISK READ:總磁盤讀
Actual DISK READ:實際磁盤讀
Total DISK WRITE :總磁盤寫入
Actual DISK WRITE:實際磁盤寫入
TID列:進程PID
USER:進程對應的用戶
iotop快捷鍵
左右箭頭:改變排序方式,默認是按IO排序。 r:改變排序順序。反向排序 o:只顯示有IO輸出的進程。 p:進程/線程的顯示方式的切換。 a:顯示累積使用量。 q:退出。
iotop的例子
1:只顯示正在產生I/O的進程
iotop -o
通過輸出結果,我們可以清楚地知曉是什么程序在讀寫磁盤,速度以及命令行,pid 等信息。
2:使用非交互模式將iotop命令輸出信息寫入日志
#nohup iotop -b -o -n 10 -d 5 -t > /tmp/iotop.log &
3.借助iotop命令找到消耗I/O最高的進程
iotop -oP
監控系統I/O
[root@localhost ~]# iotop
監控用戶root的I/O
[root@localhost ~]# iotop -u root
監控進程號是1的I/O
[root@localhost ~]# iotop -p 1
參考:https://www.xiaoz.me/archives/14057
https://www.cnblogs.com/kerrycode/p/11344506.html