
Iotop 工具是一個免費的開源免費工具,用于監(jiān)控 Linux 中的磁盤輸入/輸出 (IO) 使用情況。它可以幫助系統(tǒng)管理員找到消耗更多磁盤使用的特定進程,并有助于性能分析。
【資料圖】
從 2.6.20 內(nèi)核開始支持 Iotop 工具。本教程介紹了如何在 linux 中安裝和使用 iotop。
主要分享低代碼、微服務、容器化、SAAS?、系統(tǒng)架構方面的的?內(nèi)容??,希望?大家?點贊?,評論,關注?。
先決條件
Iotop 安裝需要低于最低版本的 python 和內(nèi)核。
Python >= 2.7Linux 內(nèi)核 ≥ 2.6.20
讓我們看看如何在 CentOS、Ubuntu、Fedora、Debian 和 Linux Mint 上安裝 iotop。
在 Ubuntu、Debian 和 Linux Mint 上
#sudo apt-get install iotop
在 CentOS、Fedora 和 RHEL 上
#sudo yum -y install iotopor #sudo dnf install iotop
另一種選擇是通過下載 gzipped 或 bzipped 文件并解壓縮來從源代碼安裝。然后使用“setup.py”文件安裝。iotop 是用 Python 編寫的,它是 iotop 安裝的先決條件。
使用以下命令提取和安裝 iotop:
# tar -xjvf iotop-0.4.4.tar.bz2# cd iotop-0.4.4/# ./setup.py install
iotop 命令必須以 root 用戶身份運行。作為普通用戶,當您運行此命令時,會出現(xiàn)以下錯誤:
$ iotopNetlink error: Operation not permitted (1)iotop requires root or the NET_ADMIN capability.
默認情況下,iotop 是一個類似于top 命令的交互式命令。
樣本輸出:
Total DISK READ : 0.00 B/s | Total DISK WRITE : 0.00 B/sActual 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 17 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_gp] 4 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_par_gp] 6 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kworker/0:0H-kblockd] 8 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [mm_percpu_wq] 9 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 10 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [rcu_sched] 11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 12 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 13 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [cpuhp/0] 15 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kdevtmpfs] 16 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [netns] 17 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kauditd] 18 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khungtaskd] 19 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [oom_reaper] 20 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [writeback] 21 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kcompactd0] 22 be/5 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksmd] 23 be/7 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [khugepaged] 24 be/0 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [crypto]
在此輸出中,在最頂部,第一行分為兩列。
第一列顯示每秒total DISK READ,第二列顯示total DISK WRITE每秒。
以下幾行對應于每個執(zhí)行 IO 操作的進程。它列出了系統(tǒng)中每個進程的進程 ID、用戶所有權、磁盤讀取、磁盤寫入、進程名稱、swapin(每個進程的交換使用情況)。
如果您只想列出實際上正在執(zhí)行任何磁盤 I/O 操作的活動進程,請在 iotop 運行時按 o(切換),或者使用-o選項 (iotop -o) 運行 iotop。
Total DISK READ : 0.00 B/s | Total DISK WRITE : 3.97 K/sActual DISK READ: 0.00 B/s | Actual DISK WRITE: 59.50 K/sTID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND1240 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.02 % rsyslogd -n [rs:main Q:Reg]400 be/3 root 0.00 B/s 0.00 B/s 0.00 % 0.01 % [jbd2/sda-8]1236 be/4 root 0.00 B/s 3.97 K/s 0.00 % 0.00 % rsyslogd -n [in:imjournal]
您可以通過按 退出 iotop 和 top 一樣q。
以下輸出是在運行任何 io 密集型進程時,例如 iozone。
Total DISK READ: 123.96 K/s | Total DISK WRITE: 14.16 M/sTID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND468 be/3 root 0.00 B/s 104.59 K/s 0.00 % 56.66 % [jbd2/sda8-8]7083 be/4 root 0.00 B/s 13.80 M/s 0.00 % 36.45 % ./iozone -a5568 be/4 raghu 123.96 K/s 0.00 B/s 0.00 % 0.00 % totem /home/raghu/Downloads/01 - Harjinder Singh - Mere Ram Rai.mp3
如上所述,該-o選項列出了實際執(zhí)行磁盤 I/O 的進程。該-b選項以非交互式批處理模式運行 iotop。它可用于記錄目的。
-n選項告訴批處理模式要執(zhí)行的迭代次數(shù):
# iotop -b -n1Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/sTID PRIO USER DISK READ DISK WRITE SWAPIN IO COMMAND1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init2 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]2052 be/4 rtkit 0.00 B/s 0.00 B/s 0.00 % 0.00 % rtkit-daemon2053 be/4 rtkit 0.00 B/s 0.00 B/s 0.00 % 0.00 % rtkit-daemon6 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0]7 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0]8 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/1]2057 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % gconfd-210 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/1]11 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/1]---Output Truncated---
該-u選項顯示特定用戶的進程。
# iotop -u raghuTotal DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/sTID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND2057 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % gconfd-22081 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % gvfs-afc-volume-monitor2082 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % caja2139 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % clock-applet2084 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % matecomponent-activation-server --ac-activate --ior-output-fd=182087 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % mate-bluetooth-applet2088 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % mate-volume-control-applet7247 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % chromium-browser --disable-new-tab-first-run --enable-user-scripts2055 be/4 raghu 0.00 B/s 0.00 B/s 0.00 % 0.00 % gconf-helper
-d選項設置迭代之間的延遲。
# iotop -d 3
最后,該--version選項打印 iotop 的版本號。
# iotop --versioniotop 0.4.4
讓我們檢查一些使用 iotop 的有用的關鍵字快捷方式。
向左或向右移動箭頭鍵以更改排序。
-h :- 查看使用信息的選項。-r :- 反轉(zhuǎn)排序順序的選項。-o :- 檢查進程或線程的選項。-b :- 打開非交互模式以啟用記錄 I/O 使用的選項。-p :- PID 列出所有要監(jiān)控的進程/線程。-u :- USER 選項列出所有要監(jiān)視的用戶。-P :- 僅列出進程的選項。通常 iotop 會顯示所有線程。-a :- 檢查累積 I/O 而不是帶寬的選項。
當系統(tǒng)使用高磁盤 IO 或高交換使用率時,iotop 是性能分析必不可少的一把利器。
主要分享低代碼、微服務、容器化、SAAS?、系統(tǒng)架構方面的的?內(nèi)容??,希望?大家?點贊?,評論,關注?。