Linux 系統管理命令 - iotop - 動態顯示磁盤 I/O 統計信息

命令詳解

重要星級:

        ★★★★☆html

功能說明:

        iotop 命令是一款實時監控磁盤 I/O 的工具, 但必須以 root 用戶的身份運行。使用 iotop 命令能夠很方便的查看每一個進程使用磁盤 I/O 的狀況。編程

        最小化安裝系統通常是沒有這個命令的,須要使用 yum 命令來額外安裝:  yum install -y iotop  ssh

語法格式:

    iotop [option]
    iotop [選項]

        說明:ide

            在 iotop 命令及後面的選項裏,每一個元素之間都至少要有一個空格。工具

選項說明:

-o :顯示正在使用 I/O 的進程或者線程,默認是顯示全部。 ※
-b :非交互模式,通常用來記錄日誌
-n NUM:設置監測的次數,默認無限。在非交互模式下頗有用
-d :設置顯示的間隔秒數。 -p :只顯示指定 PID 的信息。 ※ -u :顯示指定用戶的信息。 -P :只顯示進程,通常是顯示全部的線程。 -a :顯示從 iotop 啓動後每一個線程完成了的 I/O 總數。 -k :設置顯示單位爲 KB。 -t :在每一行前添加一個當前的時間。

man 手冊翻譯:

名稱 
       iotop - 簡單的 top 類 I/O 監視器
總覽
       iotop [OPTIONS]
描述
    iotop 根據 Linux 內核( 須要2.6.20及以上 )來監測 I/O,而且能顯示當前進程/線程的 I/O 使用率。
    Linux 內核 build 的過後哦,須要開啓 CONFIG_TASK_DELAY_ACCT 和CONFIG_TASK_IO_ACCOUNTING 選項,這些選項依賴於 CONFIG_TASKSTATS。
    在採樣週期裏,iotop 按列顯示每一個進程/線程的 I/O 讀寫帶寬,同時也顯示進程/線程作 swap 交換和等待 I/O 所佔用的百分比。
    每個進程都會顯示 I/O 優先級 ( class/level ),另外在最上面顯示每一個採樣週期內的讀寫帶寬。使用左右箭頭來改變排序,r 用來改變排序順序,o 用來觸發 --only 選項,p 用來觸發 --processes 選項。
    a 用來觸發 --accumulated 選項,q 用來退出,i 用來改變進程或線程的監測優先級,其它任繼健是強制刷新。
 
選項:
       --version 顯示版本號而後退出
       -h, --help 顯示幫助而後退出
       -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彙總。
man iotop

使用範例:

不使用任何參數啓動 iotop 命令( iotop ):

[root@localhost :~]# 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 22
     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]
     9 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [rcu_sched]
    10 be/0 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [lru-add-drain]
    11 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]
    12 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/1]
...

        如下是命令結果的具體說明:post

 1.Toal DISK READ :總的磁盤讀取速度。
 2.Toal DISK WRITE :總的磁盤寫入速度。
 3.TID :進程的 pid 值。
 4.PRIO :優先級。
 5.USER :用戶。
 6.DISK READ :磁盤讀取速度。
 7.DISK WRITE :磁盤寫入速度。
 8.SWAPIN :從 swap 分區讀取數據佔用的百分比。
 9.IO :I/O 佔用的百分比。
10.COMMAND :消耗 I/O 的進程名。

根據 pid 查看指定進程信息 ( iotop -p pid ):

[root@localhost :~]# iotop -p 1321

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  
1321 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % sshd: root@pts/0

 參考資料:

  1. iotop詳解
相關文章
相關標籤/搜索