Iotop—Linux上監(jiān)控磁盤I/O的利器詳細使用說明

2022-12-19 18:07:25 來源:51CTO博客

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

在 Linux 上安裝 iotop

讓我們看看如何在 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 用法

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

Iotop 選項

如上所述,該-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 關鍵字快捷鍵

讓我們檢查一些使用 iotop 的有用的關鍵字快捷方式。

向左或向右移動箭頭鍵以更改排序。

-h :- 查看使用信息的選項。-r :- 反轉(zhuǎn)排序順序的選項。-o :- 檢查進程或線程的選項。-b :- 打開非交互模式以啟用記錄 I/O 使用的選項。-p :- PID 列出所有要監(jiān)控的進程/線程。-u :- USER 選項列出所有要監(jiān)視的用戶。-P :- 僅列出進程的選項。通常 iotop 會顯示所有線程。-a :- 檢查累積 I/O 而不是帶寬的選項。

結(jié)論

當系統(tǒng)使用高磁盤 IO 或高交換使用率時,iotop 是性能分析必不可少的一把利器。

主要分享低代碼、微服務、容器化、SAAS?、系統(tǒng)架構方面的的?內(nèi)容??,希望?大家?點贊?,評論,關注?。

標簽: 使用情況 先決條件 必不可少

上一篇:環(huán)球即時:利用 Nmon 和 Java Nmon Analyzer 監(jiān)控 Linux 性能
下一篇:【天天熱聞】安裝VScode