iostat簡介
Linux系統(tǒng)中的iostat是I/O statistics(輸入/輸出統(tǒng)計(jì))的縮寫藻茂,iostat工具將對(duì)系統(tǒng)的磁盤操作活動(dòng)進(jìn)行監(jiān)視猖辫。它的特點(diǎn)是匯報(bào)磁盤活動(dòng)統(tǒng)計(jì)情況,同時(shí)也會(huì)匯報(bào)出CPU使用情況。同vmstat一樣,iostat也有一個(gè)弱點(diǎn),就是它不能對(duì)某個(gè)進(jìn)程進(jìn)行深入分析晓避,僅對(duì)系統(tǒng)的整體情況進(jìn)行分析.
iostat語法
iostat語法
用法:iostat [ 選項(xiàng) ] [ <時(shí)間間隔> [ <次數(shù)> ]]
即:iostat [參數(shù)] [時(shí)間] [次數(shù)]
常用選項(xiàng)說明:
-c:只顯示系統(tǒng)CPU統(tǒng)計(jì)信息簇捍,即單獨(dú)輸出avg-cpu結(jié)果,不包括device結(jié)果
-d:單獨(dú)輸出磁盤使用情況俏拱,不包括cpu結(jié)果
-k:以K為單位顯示
-m:以M為單位顯示
-x:輸出更詳細(xì)的io設(shè)備統(tǒng)計(jì)信息
-N 顯示磁盤陣列(LVM) 信息
-n 顯示NFS使用情況
-p 可以報(bào)告出每塊磁盤的每個(gè)分區(qū)的使用情況
-t 顯示終端和CPU的信息
interval/count:每次輸出間隔時(shí)間暑塑,count表示輸出次數(shù),不帶count表示循環(huán)輸出
下面就對(duì)我們常用的使用方式進(jìn)行詳細(xì)的總結(jié)锅必。
iostat常見用法以及輸出含義解釋
1事格、iostat搞隐,結(jié)果為從系統(tǒng)開機(jī)到當(dāng)前執(zhí)行時(shí)刻的統(tǒng)計(jì)信息
[root@vircent7 ~]# iostat
Linux 3.10.0-1127.el7.x86_64 (vircent7.kyj) 2021年03月16日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.66 0.00 1.36 0.14 0.00 97.83
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 1.24 59.35 4.49 333500 25219
dm-0 1.02 53.67 4.12 301570 23171
dm-1 0.02 0.39 0.00 2208 0
[root@vircent7 ~]#
輸出項(xiàng)含義解釋:
第一行:
avg-cpu: 總體cpu使用情況統(tǒng)計(jì)信息,對(duì)于多核cpu劣纲,這里為所有cpu的平均值。重點(diǎn)關(guān)注iowait值癞季,表示CPU用于等待io請(qǐng)求的完成時(shí)間劫瞳。
%user:CPU處在用戶模式下的時(shí)間百分比
%nice:CPU處在帶NICE值的用戶模式下的時(shí)間百分比
%system:CPU處在系統(tǒng)模式下的時(shí)間百分比
%iowait:CPU等待輸入輸出完成時(shí)間的百分比
%steal:管理程序維護(hù)另一個(gè)虛擬處理器時(shí)余佛,虛擬CPU的無意識(shí)等待時(shí)間百分比
%idle:CPU空閑時(shí)間百分比
第二行:
Device: 各磁盤設(shè)備的IO統(tǒng)計(jì)信息辉巡。各列含義如下:
Device: 以sdX形式顯示的設(shè)備名稱
tps: 該設(shè)備每秒的傳輸次數(shù)(即每秒進(jìn)程下發(fā)的IO讀、寫請(qǐng)求數(shù)量-->磁盤連續(xù)讀和連續(xù)寫之和])蕊退〗奸梗“一次傳輸”意思是“一次I/O請(qǐng)求”。多個(gè)邏輯請(qǐng)求可能會(huì)被合并為“一次I/O請(qǐng)求”瓤荔【辉椋“一次傳輸”請(qǐng)求的大小是未知的。
KB_read/s: 每秒從設(shè)備讀取的數(shù)據(jù)量输硝,單位為KB(Kilobytes)今瀑。
KB_wrtn/s: 每秒向設(shè)備寫入的數(shù)據(jù)量,單位為KB点把。
KB_read: 讀入數(shù)據(jù)總量橘荠,單位為KB。
KB_wrtn: 寫入數(shù)據(jù)總量郎逃,單位為KB哥童。
2.iostat -x
[root@vircent7 ~]# iostat -x
Linux 3.10.0-1127.el7.x86_64 (vircent7.kyj) 2021年03月16日 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.40 0.00 0.82 0.09 0.00 98.70
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.02 0.64 0.14 39.43 2.66 107.28 0.01 7.82 9.21 1.53 3.38 0.27
dm-0 0.00 0.00 0.53 0.16 36.64 2.48 114.50 0.01 8.63 10.76 1.54 3.80 0.26
dm-1 0.00 0.00 0.01 0.00 0.19 0.00 49.62 0.00 2.12 2.12 0.00 1.61 0.00
[root@vircent7 ~]# ^C
iostat命令的重點(diǎn)不是用來看CPU的,重點(diǎn)是用來監(jiān)測(cè)磁盤性能的褒翰。
上面輸出第二行贮懈,磁盤信息詳解:
Device:設(shè)備名稱
rrqm/s:每秒合并到設(shè)備的讀取請(qǐng)求數(shù),單位是次數(shù)匀泊,delta(rmerge)/s
wrqm/s:每秒合并到設(shè)備的寫請(qǐng)求數(shù)
r/s:每秒向磁盤發(fā)起的讀操作次數(shù)
w/s:每秒向磁盤發(fā)起的寫操作次數(shù)
rsec/s: 每秒讀扇區(qū)數(shù).即 delta(rsect)/s
wsec/s: 每秒寫扇區(qū)數(shù).即 delta(wsect)/s
rkB/s:每秒讀K字節(jié)數(shù),是 rsect/s 的一半,因?yàn)槊可葏^(qū)大小為512字節(jié).(需要計(jì)算)
wkB/s:每秒寫K字節(jié)數(shù)朵你,是 wsect/s 的一半.(需要計(jì)算)
avgrq-sz:平均每次設(shè)備I/O操作的數(shù)據(jù)大小
avgqu-sz:平均I/O隊(duì)列長度
await:平均每次設(shè)備I/O操作的等待時(shí)間 (毫秒)各聘,一般地,系統(tǒng)I/O響應(yīng)時(shí)間應(yīng)該低于5ms撬呢,如果大于 10ms就比較大了
r_await:每個(gè)讀操作平均所需的時(shí)間伦吠;不僅包括硬盤設(shè)備讀操作的時(shí)間,還包括了在kernel隊(duì)列中等待的時(shí)間
w_await:每個(gè)寫操作平均所需的時(shí)間魂拦;不僅包括硬盤設(shè)備寫操作的時(shí)間毛仪,還包括了在kernel隊(duì)列中等待的時(shí)間
svctm:平均每次設(shè)備I/O操作的服務(wù)時(shí)間 (毫秒)(這個(gè)數(shù)據(jù)不可信!)
%util:一秒中有百分之多少的時(shí)間用于I/O操作芯勘,即被IO消耗的CPU百分比箱靴,一般地,如果該參數(shù)是100%表示設(shè)備已經(jīng)接近滿負(fù)荷運(yùn)行了