Linux系統(tǒng)之iostat命令的基本使用詳解
一、iostat命令介紹
iostat命令是Linux/Unix系統(tǒng)中的一種工具,用于監(jiān)控系統(tǒng)的磁盤I/O活動情況,可以展示磁盤的讀寫速率、I/O等待時間、CPU使用率等信息。
iostat命令可以幫助系統(tǒng)管理員發(fā)現(xiàn)系統(tǒng)瓶頸,并且優(yōu)化系統(tǒng)來提高性能。
二、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的選項解釋
iostat的選項解釋
- -c: 僅顯示CPU利用率相關(guān)信息;
- -d: 僅顯示磁盤I/O相關(guān)信息;
- -k: 顯示輸出的數(shù)據(jù)單位為KB/s而不是默認(rèn)的字節(jié)/s;
- -t: 在輸出中顯示時間戳(時間戳格式Y(jié)YYY-MM-DD HH:MM:SS)。
- -m:顯示狀態(tài)以兆字節(jié)每秒為單位;
- -p:僅顯示塊設(shè)備和所有被使用的其他分區(qū)的狀態(tài);
- -V:顯示版號并退出;
- -x:顯示擴(kuò)展?fàn)顟B(tài)。
參數(shù)解釋
- 間隔時間:每次報告的間隔時間(秒);
- 次數(shù):顯示報告的次數(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ù)載情況和磁盤的狀態(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 只查看磁盤狀態(tài)
- 只查看磁盤的狀態(tài)信息,展示磁盤的讀寫速率、I/O等待時間、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
- 實時監(jiān)控,每隔5秒就顯示磁盤信息。
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
四、查看磁盤I/O的詳細(xì)情況
- 查看某塊磁盤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)測設(shè)備名稱
- rrqm/s 每秒需要讀取需求的數(shù)量
- wrqm/s 每秒需要寫入需求的數(shù)量
- r/s 每秒實際讀取需求的數(shù)量
- w/s 每秒實際寫入需求的數(shù)量
- rsec/s 每秒讀取區(qū)段的數(shù)量
- wsec/s 每秒寫入?yún)^(qū)段的數(shù)量
- rkB/s 每秒實際讀取的大小,單位為KB
- wkB/s 每秒實際寫入的大小,單位為KB
- avgrq-sz 需求的平均大小區(qū)段
- avgqu-sz 需求的平均隊列長度
- await 等待I/O平均的時間(milliseconds)
- svctm I/O需求完成的平均時間
- %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時間百分比。
- %nice:表示以較高的優(yōu)先級運行的用戶進(jìn)程的CPU時間百分比。
- %system:表示內(nèi)核空間程序執(zhí)行的CPU時間百分比。
- %iowait:表示CPU等待I/O操作完成的時間百分比。
- %steal:表示由于運行虛擬機(jī)等原因被其他虛擬機(jī)占用的CPU時間百分比。
- %idle:表示CPU空閑時間的百分比。
六、iostat命令的使用總結(jié)
6.1 磁盤模塊分析
在使用IOStat進(jìn)行系統(tǒng)性能監(jiān)控時,需要注意綜合分析磁盤和CPU等多個性能指標(biāo),以全面評估系統(tǒng)性能瓶頸的位置和原因。
通過監(jiān)控以上指標(biāo),可以識別磁盤的瓶頸位置,例如:
- 如果r/s和w/s較高,說明磁盤IO壓力較大,需要考慮更換更高性能的硬盤;
- 如果await和svctm較高,說明磁盤處理I/O請求的能力不足,可能需要更換磁盤控制器或升級磁盤陣列等。
6.2 CPU模塊分析
通過監(jiān)控以上指標(biāo),可以識別CPU的瓶頸位置,例如:
- 如果%user和%system較高,說明CPU的負(fù)載較大,可能需要考慮升級CPU或增加CPU核心數(shù);
- 如果%iowait較高,說明CPU等待IO完成的時間較長,可能需要優(yōu)化磁盤性能或者減少磁盤IO操作;
- 如果%idle值高,表示CPU較空閑,系統(tǒng)處于空閑狀態(tài),無太多處理任務(wù);
- 如果%idle值高但系統(tǒng)響應(yīng)慢時,有可能是CPU等待分配內(nèi)存,此時應(yīng)加大內(nèi)存容量。
- 如果%idle較低,說明CPU負(fù)載較大,可能需要考慮優(yōu)化應(yīng)用程序或增加CPU資源等。
七、總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Linux系統(tǒng)配置nginx的負(fù)載均衡
這篇文章主要介紹了詳解Linux系統(tǒng)配置nginx的負(fù)載均衡的相關(guān)資料,這里對負(fù)載均衡的幾種方式進(jìn)行了講解并附NGINX配置文件,需要的朋友可以參考下2017-03-03
Apache下開啟SSI配置使html支持include包含的方法
這篇文章主要介紹了Apache下開啟SSI配置使html支持include包含的方法,需要的朋友可以參考下2016-10-10
在Linux環(huán)境下采用壓縮包方式安裝JDK 13的方法
JDK(Java Development Kit)是Sun公司(后被Oracle收購)推出的面向?qū)ο蟪绦蛟O(shè)計語言的開發(fā)工具包,擁有這個工具包之后我們就可以使用Java語言進(jìn)行程序設(shè)計和開發(fā)。這篇文章主要介紹了在Linux環(huán)境下采用壓縮包方式安裝JDK 13,需要的朋友可以參考下2019-10-10
分享9個實戰(zhàn)及面試常用Linux Shell腳本編寫
這篇文章主要介紹了9個實戰(zhàn)及面試常用Shell腳本編寫,非常不錯,具有一定的收藏價值,需要的朋友可以參考下2018-10-10
linux防火墻配置教程之訪問外網(wǎng)web實驗(3)
這篇文章主要為大家詳細(xì)介紹了linux防火墻配置教程之訪問外網(wǎng)web的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04

