Linux系統(tǒng)之iostat命令的基本使用詳解
一、iostat命令介紹
iostat命令是Linux/Unix系統(tǒng)中的一種工具,用于監(jiān)控系統(tǒng)的磁盤(pán)I/O活動(dòng)情況,可以展示磁盤(pán)的讀寫(xiě)速率、I/O等待時(shí)間、CPU使用率等信息。
iostat命令可以幫助系統(tǒng)管理員發(fā)現(xiàn)系統(tǒng)瓶頸,并且優(yōu)化系統(tǒng)來(lái)提高性能。
二、iostat命令幫助
1.1 iostat的幫助信息
在Linux中的 iostat幫助信息
[root@jeven ~]# iostat --help
Usage: iostat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -c ] [ -d ] [ -h ] [ -k | -m ] [ -N ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } ]
[ [ -T ] -g <group_name> ] [ -p [ <device> [,...] | ALL ] ]
[ <device> [...] | ALL ]
1.2 iostat的選項(xiàng)解釋
iostat的選項(xiàng)解釋
- -c: 僅顯示CPU利用率相關(guān)信息;
- -d: 僅顯示磁盤(pán)I/O相關(guān)信息;
- -k: 顯示輸出的數(shù)據(jù)單位為KB/s而不是默認(rèn)的字節(jié)/s;
- -t: 在輸出中顯示時(shí)間戳(時(shí)間戳格式Y(jié)YYY-MM-DD HH:MM:SS)。
- -m:顯示狀態(tài)以兆字節(jié)每秒為單位;
- -p:僅顯示塊設(shè)備和所有被使用的其他分區(qū)的狀態(tài);
- -V:顯示版號(hào)并退出;
- -x:顯示擴(kuò)展?fàn)顟B(tài)。
參數(shù)解釋
- 間隔時(shí)間:每次報(bào)告的間隔時(shí)間(秒);
- 次數(shù):顯示報(bào)告的次數(shù)。
三、iostat命令的基本使用
3.1 查看iostat工具版本
查看iostat工具版本
[root@jeven ~]# iostat -V sysstat version 10.1.5 (C) Sebastien Godard (sysstat <at> orange.fr)
3.2 直接使用iostat命令
直接使用iostat命令,查看系統(tǒng)的整體情況,顯示CPU的負(fù)載情況和磁盤(pán)的狀態(tài)信息。
[root@jeven ~]# iostat
Linux 3.10.0-957.el7.x86_64 (jeven) 07/05/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.91 0.01 3.43 0.04 0.00 95.62
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3.22 38.47 84.87 4775774 10535362
dm-0 3.72 38.14 84.69 4735028 10512927
dm-1 0.00 0.02 0.00 2740 364
dm-2 0.00 0.05 0.05 6781 6606
3.3 間隔5秒查看3次信息
- 每隔5秒,查看系統(tǒng)的狀態(tài)信息,一共查看3次。
[root@jeven ~]# iostat 5 3
Linux 3.10.0-957.el7.x86_64 (jeven) 07/05/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.91 0.01 3.45 0.04 0.00 95.59
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3.23 38.34 84.81 4775782 10564971
dm-0 3.73 38.01 84.63 4735036 10542537
dm-1 0.00 0.02 0.00 2740 364
dm-2 0.00 0.05 0.05 6781 6606
avg-cpu: %user %nice %system %iowait %steal %idle
2.35 0.00 10.43 0.00 0.00 87.22
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3.60 0.00 38.10 0 190
dm-0 3.60 0.00 38.10 0 190
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
avg-cpu: %user %nice %system %iowait %steal %idle
2.26 0.00 10.48 0.00 0.00 87.26
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.60 0.00 5.30 0 26
dm-0 0.60 0.00 5.30 0 26
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
3.4 只查看磁盤(pán)狀態(tài)
- 只查看磁盤(pán)的狀態(tài)信息,展示磁盤(pán)的讀寫(xiě)速率、I/O等待時(shí)間、CPU使用率等信息。
[root@jeven ~]# iostat -d Linux 3.10.0-957.el7.x86_64 (jeven) 07/05/2023 _x86_64_ (2 CPU) Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 3.23 38.31 84.79 4775782 10570681 dm-0 3.73 37.98 84.61 4735036 10548247 dm-1 0.00 0.02 0.00 2740 364 dm-2 0.00 0.05 0.05 6781 6606
- 實(shí)時(shí)監(jiān)控,每隔5秒就顯示磁盤(pán)信息。
iostat -d 5

3.5 以k或M為單位顯示信息
以k或M為單位顯示信息
[root@jeven ~]# iostat -k
Linux 3.10.0-957.el7.x86_64 (jeven) 07/05/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.92 0.01 3.49 0.04 0.00 95.54
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3.25 38.12 84.70 4775782 10611155
dm-0 3.75 37.80 84.52 4735036 10588721
dm-1 0.00 0.02 0.00 2740 364
dm-2 0.00 0.05 0.05 6781 6606
[root@jeven ~]# iostat -m
Linux 3.10.0-957.el7.x86_64 (jeven) 07/05/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.92 0.01 3.49 0.04 0.00 95.54
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 3.25 0.04 0.08 4663 10363
dm-0 3.75 0.04 0.08 4624 10341
dm-1 0.00 0.00 0.00 2 0
dm-2 0.00 0.00 0.00 6 6
四、查看磁盤(pán)I/O的詳細(xì)情況
- 查看某塊磁盤(pán)I/O的詳細(xì)情況
[root@jeven ~]# iostat -x /dev/sda
Linux 3.10.0-957.el7.x86_64 (jeven) 07/05/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.91 0.01 3.47 0.04 0.00 95.57
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.51 0.74 2.50 38.26 84.77 76.04 0.03 10.45 14.10 9.37 0.84 0.27
Device 監(jiān)測(cè)設(shè)備名稱
- rrqm/s 每秒需要讀取需求的數(shù)量
- wrqm/s 每秒需要寫(xiě)入需求的數(shù)量
- r/s 每秒實(shí)際讀取需求的數(shù)量
- w/s 每秒實(shí)際寫(xiě)入需求的數(shù)量
- rsec/s 每秒讀取區(qū)段的數(shù)量
- wsec/s 每秒寫(xiě)入?yún)^(qū)段的數(shù)量
- rkB/s 每秒實(shí)際讀取的大小,單位為KB
- wkB/s 每秒實(shí)際寫(xiě)入的大小,單位為KB
- avgrq-sz 需求的平均大小區(qū)段
- avgqu-sz 需求的平均隊(duì)列長(zhǎng)度
- await 等待I/O平均的時(shí)間(milliseconds)
- svctm I/O需求完成的平均時(shí)間
- %util 被I/O需求消耗的CPU百分比
五、查看cpu狀態(tài)信息
查看cpu狀態(tài)信息
[root@jeven ~]# iostat -c 5 2
Linux 3.10.0-957.el7.x86_64 (jeven) 07/05/2023 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.92 0.01 3.48 0.04 0.00 95.56
avg-cpu: %user %nice %system %iowait %steal %idle
2.36 0.00 10.66 0.00 0.00 86.99
- %user:表示用戶空間程序執(zhí)行的CPU時(shí)間百分比。
- %nice:表示以較高的優(yōu)先級(jí)運(yùn)行的用戶進(jìn)程的CPU時(shí)間百分比。
- %system:表示內(nèi)核空間程序執(zhí)行的CPU時(shí)間百分比。
- %iowait:表示CPU等待I/O操作完成的時(shí)間百分比。
- %steal:表示由于運(yùn)行虛擬機(jī)等原因被其他虛擬機(jī)占用的CPU時(shí)間百分比。
- %idle:表示CPU空閑時(shí)間的百分比。
六、iostat命令的使用總結(jié)
6.1 磁盤(pán)模塊分析
在使用IOStat進(jìn)行系統(tǒng)性能監(jiān)控時(shí),需要注意綜合分析磁盤(pán)和CPU等多個(gè)性能指標(biāo),以全面評(píng)估系統(tǒng)性能瓶頸的位置和原因。
通過(guò)監(jiān)控以上指標(biāo),可以識(shí)別磁盤(pán)的瓶頸位置,例如:
- 如果r/s和w/s較高,說(shuō)明磁盤(pán)IO壓力較大,需要考慮更換更高性能的硬盤(pán);
- 如果await和svctm較高,說(shuō)明磁盤(pán)處理I/O請(qǐng)求的能力不足,可能需要更換磁盤(pán)控制器或升級(jí)磁盤(pán)陣列等。
6.2 CPU模塊分析
通過(guò)監(jiān)控以上指標(biāo),可以識(shí)別CPU的瓶頸位置,例如:
- 如果%user和%system較高,說(shuō)明CPU的負(fù)載較大,可能需要考慮升級(jí)CPU或增加CPU核心數(shù);
- 如果%iowait較高,說(shuō)明CPU等待IO完成的時(shí)間較長(zhǎng),可能需要優(yōu)化磁盤(pán)性能或者減少磁盤(pán)IO操作;
- 如果%idle值高,表示CPU較空閑,系統(tǒng)處于空閑狀態(tài),無(wú)太多處理任務(wù);
- 如果%idle值高但系統(tǒng)響應(yīng)慢時(shí),有可能是CPU等待分配內(nèi)存,此時(shí)應(yīng)加大內(nèi)存容量。
- 如果%idle較低,說(shuō)明CPU負(fù)載較大,可能需要考慮優(yōu)化應(yīng)用程序或增加CPU資源等。
七、總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Linux系統(tǒng)配置nginx的負(fù)載均衡
這篇文章主要介紹了詳解Linux系統(tǒng)配置nginx的負(fù)載均衡的相關(guān)資料,這里對(duì)負(fù)載均衡的幾種方式進(jìn)行了講解并附NGINX配置文件,需要的朋友可以參考下2017-03-03
Apache下開(kāi)啟SSI配置使html支持include包含的方法
這篇文章主要介紹了Apache下開(kāi)啟SSI配置使html支持include包含的方法,需要的朋友可以參考下2016-10-10
Linux查看進(jìn)程的資源限制信息的常見(jiàn)方法
這篇文章主要介紹了Linux中通過(guò)`cat /proc/$pid/limits`查看進(jìn)程資源限制的方法,包括軟硬限制、資源類型(如文件數(shù)、內(nèi)存、CPU時(shí)間)及修改方式(ulimit/prlimit/limits.conf),用于診斷資源不足問(wèn)題并優(yōu)化系統(tǒng)配置,需要的朋友可以參考下2025-06-06
在Linux環(huán)境下采用壓縮包方式安裝JDK 13的方法
JDK(Java Development Kit)是Sun公司(后被Oracle收購(gòu))推出的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的開(kāi)發(fā)工具包,擁有這個(gè)工具包之后我們就可以使用Java語(yǔ)言進(jìn)行程序設(shè)計(jì)和開(kāi)發(fā)。這篇文章主要介紹了在Linux環(huán)境下采用壓縮包方式安裝JDK 13,需要的朋友可以參考下2019-10-10
分享9個(gè)實(shí)戰(zhàn)及面試常用Linux Shell腳本編寫(xiě)
這篇文章主要介紹了9個(gè)實(shí)戰(zhàn)及面試常用Shell腳本編寫(xiě),非常不錯(cuò),具有一定的收藏價(jià)值,需要的朋友可以參考下2018-10-10
linux防火墻配置教程之訪問(wèn)外網(wǎng)web實(shí)驗(yàn)(3)
這篇文章主要為大家詳細(xì)介紹了linux防火墻配置教程之訪問(wèn)外網(wǎng)web的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Linux Samba客戶端掛載問(wèn)題的深度排查與解決方案
在 Linux 系統(tǒng)下訪問(wèn) Samba 共享時(shí),掛載失敗的原因可能來(lái)自不同層面,包括系統(tǒng)支持、用戶權(quán)限、目錄配置以及共享類型,本文將從四個(gè)角度系統(tǒng)地分析和解決問(wèn)題,并給出詳細(xì)操作示例,以 Ubuntu/Debian 系統(tǒng)為例,需要的朋友可以參考下2025-08-08

