Linux使用iostat命令監(jiān)控系統(tǒng)磁盤I/O性能和CPU使用情況
好的,我們來詳細(xì)介紹一下 Linux 系統(tǒng)中的 iostat 命令。
1. 什么是 iostat?
iostat(Input/Output Statistics)是一個用于監(jiān)控系統(tǒng)磁盤I/O(輸入/輸出)性能和CPU使用情況的強(qiáng)大工具。它是 sysstat 軟件包的一部分,在大多數(shù) Linux 發(fā)行版中默認(rèn)并不安裝,但可以輕松通過包管理器獲取。
它的主要作用是幫助系統(tǒng)管理員識別存儲設(shè)備的性能瓶頸。
2. 主要功能
iostat 提供兩大類信息:
- CPU 使用率報告
- 設(shè)備/分區(qū) I/O 統(tǒng)計報告
3. 安裝 iostat
由于 iostat 屬于 sysstat 包,你需要先安裝它。
在 Debian/Ubuntu 上:
sudo apt-get update sudo apt-get install sysstat
在 RHEL/CentOS/Fedora 上:
# RHEL/CentOS (使用 yum 或 dnf) sudo yum install sysstat # 或者 sudo dnf install sysstat # Fedora sudo dnf install sysstat
安裝后,sysstat 服務(wù)通常會啟動并開始收集系統(tǒng)活動數(shù)據(jù)。
4. 基本語法和常用選項
基本語法:
iostat [選項] [時間間隔] [次數(shù)]
常用選項:
| 選項 | 描述 |
|---|---|
-c | 僅顯示 CPU 使用率報告。 |
-d | 僅顯示設(shè)備/分區(qū) I/O 統(tǒng)計報告。 |
-x | 顯示擴(kuò)展的 I/O 統(tǒng)計信息,這是進(jìn)行深入性能分析的關(guān)鍵。 |
-m | 以 MB/s 為單位顯示統(tǒng)計信息,而不是默認(rèn)的 KB/s。更易讀。 |
-p | 顯示所有塊設(shè)備及其分區(qū)的統(tǒng)計信息。 |
-t | 在輸出中打印時間戳。 |
-h | 以人類可讀的格式輸出(例如,與 -m 類似,但更友好)。 |
5. 輸出字段詳解(重點(diǎn))
5.1 CPU 使用率報告
當(dāng)你直接運(yùn)行 iostat 時,首先看到的是 CPU 報告。
| 字段 | 描述 |
|---|---|
%user | 在用戶級別(應(yīng)用程序)運(yùn)行時占用的 CPU 百分比。 |
%nice | 在用戶級別,使用 nice 優(yōu)先級運(yùn)行的進(jìn)程占用的 CPU 百分比。 |
%system | 在內(nèi)核級別(系統(tǒng)調(diào)用)運(yùn)行時占用的 CPU 百分比。 |
%iowait | 重要指標(biāo):CPU 空閑并且系統(tǒng)有未完成的磁盤 I/O 請求的時間百分比。如果這個值持續(xù)很高(例如 >20%),通常表示磁盤是系統(tǒng)瓶頸。 |
%steal | 在虛擬化環(huán)境中,被宿主機(jī)(Hypervisor)“偷走”的 CPU 時間百分比。 |
%idle | CPU 空閑時間百分比。 |
5.2 設(shè)備 I/O 統(tǒng)計報告(基礎(chǔ))
使用 iostat -d 查看。
| 字段 | 描述 |
|---|---|
Device | 塊設(shè)備(磁盤)的名稱,如 sda, sdb1。 |
tps | 每秒發(fā)送到設(shè)備的 I/O 請求數(shù)量(Transactions Per Second)。 |
kB_read/s | 從設(shè)備讀取數(shù)據(jù)的速度(KB/s)。 |
kB_wrtn/s | 向設(shè)備寫入數(shù)據(jù)的速度(KB/s)。 |
kB_read | 自啟動以來從設(shè)備讀取的總數(shù)據(jù)量(KB)。 |
kB_wrtn | 自啟動以來向設(shè)備寫入的總數(shù)據(jù)量(KB)。 |
5.3 擴(kuò)展 I/O 統(tǒng)計報告(關(guān)鍵?。?/h3>
使用 iostat -x 查看,這是進(jìn)行性能診斷的核心。
| 字段 | 描述 |
|---|---|
rrqm/s | 每秒合并的讀請求數(shù)(合并是為了提高效率)。 |
wrqm/s | 每秒合并的寫請求數(shù)。 |
r/s | 每秒發(fā)給設(shè)備的讀請求數(shù)。 |
w/s | 每秒發(fā)給設(shè)備的寫請求數(shù)。 |
rkB/s | 每秒從設(shè)備讀取的數(shù)據(jù)量(KB/s)。 |
wkB/s | 每秒向設(shè)備寫入的數(shù)據(jù)量(KB/s)。 |
avgrq-sz | 發(fā)給設(shè)備的請求的平均大?。ㄒ陨葏^(qū)為單位)。 |
avgqu-sz | 重要指標(biāo):發(fā)給設(shè)備的請求的平均隊列長度。如果持續(xù)大于1,可能表示設(shè)備已飽和。 |
await | 重要指標(biāo):I/O 請求處理的平均時間(毫秒),包括排隊時間和服務(wù)時間。對應(yīng)用戶感受,值越小越好。如果 await 遠(yuǎn)大于 svctm,說明請求在隊列中等待時間很長,磁盤可能過載。 |
r_await | 讀請求的平均處理時間(毫秒)。 |
w_await | 寫請求的平均處理時間(毫秒)。 |
svctm | 已棄用:設(shè)備處理 I/O 請求的平均服務(wù)時間(毫秒)。在現(xiàn)代系統(tǒng)中,這個值可能不準(zhǔn)確,建議關(guān)注 await。 |
%util | 最重要指標(biāo):設(shè)備帶寬的使用率百分比。表示設(shè)備在給定時間段內(nèi)有多忙。如果持續(xù)接近 100%,說明設(shè)備 I/O 已飽和,成為系統(tǒng)瓶頸。 |
6. 實用示例
基本使用,每2秒刷新一次
iostat
僅顯示磁盤統(tǒng)計,每1秒刷新一次,共刷新5次
iostat -d 1 5
顯示擴(kuò)展統(tǒng)計信息,以 MB/s 為單位
iostat -x -m 1
查看特定磁盤(如 sda)的詳細(xì)統(tǒng)計
iostat -x -m sda 1
查看所有設(shè)備和分區(qū)的統(tǒng)計
iostat -x -m -p ALL 1
7. 性能分析思路
- 看整體負(fù)載:先看
%iowait和tps/r/s/w/s,了解系統(tǒng) I/O 壓力。 - 看設(shè)備飽和度:查看
%util。如果持續(xù) 100%,說明該設(shè)備是瓶頸。 - 看響應(yīng)時間:查看
await。如果await很高,用戶體驗會變差(操作卡頓)。 - 看隊列長度:查看
avgqu-sz。隊列越長,說明設(shè)備處理不過來,請求在積壓。 - 綜合分析:
- 如果
%util接近 100%,且await很高,avgqu-sz也很大,基本可以斷定該磁盤是性能瓶頸。 - 如果
%util不高,但await很高,可能是應(yīng)用程序的 I/O 模式有問題(例如大量隨機(jī) I/O),或者磁盤本身(如 RAID)的響應(yīng)速度慢。
- 如果
總結(jié)
iostat 是 Linux 系統(tǒng)管理員和性能工程師工具箱中不可或缺的工具。通過理解其輸出字段的含義,特別是擴(kuò)展統(tǒng)計(-x)中的 %util、await 和 avgqu-sz,你可以快速定位和診斷與磁盤 I/O 相關(guān)的性能問題。
以上就是Linux使用iostat命令監(jiān)控系統(tǒng)磁盤I/O性能和CPU使用情況的詳細(xì)內(nèi)容,更多關(guān)于Linux iostat監(jiān)控磁盤I/O性能和CPU使用的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Linux導(dǎo)出指定時間日志的完整方法(日志/文件通用)
在Linux日常運(yùn)維中,經(jīng)常需要從海量日志或文件中,導(dǎo)出指定時間段的內(nèi)容進(jìn)行問題排查、數(shù)據(jù)統(tǒng)計或備份,本文將結(jié)合Linux常用命令(grep、sed、awk、journalctl等),分場景詳解實操方法,需要的朋友可以參考下2026-02-02
cloudera manager 設(shè)置開機(jī)自啟的方法
下面小編就為大家?guī)硪黄猚loudera manager 設(shè)置開機(jī)自啟的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
在Linux系統(tǒng)上搭建Web服務(wù)器的方法步驟
對于許多開發(fā)者和技術(shù)愛好者而言,擁有一個屬于自己的 Web 服務(wù)器是邁向更廣闊技術(shù)世界的第一步,本文給大家提供一份超詳細(xì)、步驟清晰、真正零門檻的 Linux Web 服務(wù)器搭建指南,需要的朋友可以參考下2025-10-10
windows安裝apache系統(tǒng)中無apache2服務(wù)解決方案
一直都是用WIN開發(fā)PHP,今天有用戶反映SHUGUANG CMS在APACHE+PHP中不能正常運(yùn)行,只好自己機(jī)器配置個環(huán)境測試,遇到點(diǎn)小問題,搜索相關(guān)資料,終于解決2011-09-09
sersync2 完全安裝配置說明(二) 可選功能與xml高級配置
sersync2 完全安裝配置說明(二) 可選功能與xml高級配置,需要的朋友可以參考下。2011-11-11
Ubuntu 16.04/18.04 安裝Pycharm及Ipython的教程
這篇文章主要介紹了Ubuntu 16.04/18.04 安裝Pycharm及Ipython的教程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10

