iostat用法

jasmine456發表於2024-10-01

iostat 是 Linux 系統中用於監控 CPU 使用情況和磁碟 I/O 活動的工具,它可以幫助你瞭解系統的 I/O 效能,尤其是在磁碟和儲存裝置上的讀寫情況。iostatsysstat 工具包的一部分,通常用於檢測系統是否存在 I/O 效能瓶頸。

1. 安裝 iostat

在一些 Linux 發行版中,iostat 可能沒有預設安裝,可以透過以下命令安裝:

  • Debian/Ubuntu

    sudo apt update
    sudo apt install sysstat
    
  • CentOS/RHEL

    sudo yum install sysstat
    
  • Fedora

    sudo dnf install sysstat
    

2. 基本用法

檢視所有裝置的 I/O 狀況

預設情況下,執行 iostat 會顯示系統的 CPU 和所有裝置的 I/O 活動情況:

iostat

輸出將顯示兩部分:

  1. CPU 使用情況:顯示使用者態、系統態、空閒時間等。
  2. 裝置 I/O 使用情況:顯示裝置名稱、每秒讀/寫請求數量、每次請求的平均塊大小等。

只檢視裝置的 I/O 資訊

如果你只對儲存裝置的 I/O 活動感興趣,可以使用以下命令忽略 CPU 資訊:

iostat -d
  • -d:只顯示磁碟 I/O 統計資訊。

每秒重新整理統計資訊

可以設定定時重新整理統計資訊,每隔幾秒重新整理一次當前的 I/O 使用情況。比如每隔 5 秒重新整理一次,並且顯示 3 次:

iostat -d 5 3
  • 5:表示每隔 5 秒重新整理一次。
  • 3:表示顯示 3 次結果。

檢視裝置的詳細 I/O 資訊

使用 -x 選項可以檢視每個裝置的詳細 I/O 統計資訊:

iostat -x

這將顯示如下指標:

  • rrqm/s:每秒合併的讀請求數(從作業系統角度)。
  • wrqm/s:每秒合併的寫請求數。
  • r/s:每秒完成的讀請求數。
  • w/s:每秒完成的寫請求數。
  • rMB/s:每秒讀出的 MB 數。
  • wMB/s:每秒寫入的 MB 數。
  • avgrq-sz:平均每個 I/O 請求的大小(以塊為單位)。
  • avgqu-sz:平均 I/O 佇列長度。
  • await:I/O 操作的平均等待時間(毫秒)。
  • svctm:平均服務時間(毫秒)。
  • %util:裝置的使用率,表示在某個時間段內裝置忙碌的百分比。

檢視特定裝置的 I/O

可以透過指定裝置名來檢視單個裝置的 I/O 情況:

iostat -d -x /dev/sda
  • /dev/sda:指定的裝置名稱。

只顯示某個裝置的統計資訊

如果你只想檢視某個裝置的統計資料,可以使用:

iostat -p sda

這將顯示與 sda 相關的 I/O 活動。

3. 常用選項

  • -c:只顯示 CPU 使用情況。
  • -d:顯示磁碟 I/O 統計資訊。
  • -k:將結果單位顯示為 KB(預設單位是塊)。
  • -m:將結果單位顯示為 MB。
  • -p:顯示指定裝置及其分割槽的 I/O 統計資訊。
  • -t:顯示統計資訊時,附帶時間戳。
  • -x:顯示裝置的詳細統計資訊。

4. 示例

每隔 2 秒顯示一次所有裝置的詳細 I/O 資訊

iostat -x 2

檢視特定裝置每秒的讀寫速率

iostat -d -m /dev/sda 1
  • 這將每秒重新整理一次 /dev/sda 的讀寫速率,單位為 MB。

檢視裝置的讀寫等待時間和佇列長度

iostat -x -p sda
  • await:裝置的平均等待時間,通常越小越好。
  • avgqu-sz:裝置的平均佇列長度,顯示等待處理的請求數量。

5. 結果解讀

以下是一些常見的指標及其含義:

  • %util:裝置的利用率,100% 表示裝置始終在忙碌。如果 %util 接近 100%,表示裝置可能已經成為系統的效能瓶頸。
  • await:I/O 請求的平均等待時間,通常該值越小越好。如果該值過高,表示 I/O 瓶頸較為嚴重。
  • r/s, w/s:每秒的讀寫請求數,顯示磁碟的讀寫頻率。
  • rMB/s, wMB/s:每秒讀寫的 MB 數,顯示磁碟的讀寫頻寬。

6. 總結

  • 基本使用:直接執行 iostat 可以檢視 CPU 和裝置的 I/O 狀態。
  • 定時監控:可以設定定時重新整理,比如每 5 秒重新整理一次 I/O 統計資料。
  • 詳細統計:透過 -x 引數可以檢視詳細的 I/O 指標,包括裝置利用率和等待時間。
  • 指定裝置:可以透過指定裝置名來檢視某一裝置的效能。

iostat 是一個非常有用的工具,特別是在診斷磁碟 I/O 效能問題和檢測系統瓶頸時。