iostat命令 :報(bào)告系統(tǒng)CPU和IO相關(guān)統(tǒng)計(jì)信息。
成都創(chuàng)新互聯(lián)成立于2013年,先為樂業(yè)等服務(wù)建站,樂業(yè)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為樂業(yè)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
iostat 第一行會輸出 - 系統(tǒng)版本內(nèi)信息 - 統(tǒng)計(jì)開始時間 - cpu數(shù)量
下面想講講iostat幾個重要參數(shù)。
輸出分為 CPU 和 IO 統(tǒng)計(jì)信息
CPU統(tǒng)計(jì)數(shù)據(jù)
IO統(tǒng)計(jì)數(shù)據(jù)
常用方法
# iostat -x 2 //每2秒輸出一次數(shù)據(jù)
# iostat -x 2 2 #2秒中輸出一個 總計(jì)數(shù)據(jù)2個
寫到這里對iostat 介紹的就差不多了,iostat命令數(shù)據(jù)的結(jié)果受很多因素的影響,我們不能武斷的使用統(tǒng)計(jì)結(jié)果,要多多思考才能有更大的幫助。
本文參考了 Bean Li 深入理解iostat 感謝前輩大神的分享,文章內(nèi)容有很多干貨,建議大家看看。
iostat 主要用于輸出磁盤IO 和 CPU的統(tǒng)計(jì)信息。
iostat屬于sysstat軟件包。可以用yum install sysstat 直接安裝。
用法: iostat [選項(xiàng)] [時間間隔] [次數(shù)]
如下圖:
-c: 顯示CPU使用情況
-d: 顯示磁盤使用情況
-N: 顯示磁盤陣列(LVM) 信息
-n: 顯示NFS 使用情況
-k: 以 KB 為單位顯示
-m: 以 M 為單位顯示
-t: 報(bào)告每秒向終端讀取和寫入的字符數(shù)和CPU的信息
-V: 顯示版本信息
-x: 顯示詳細(xì)信息
-p: [磁盤] 顯示磁盤和分區(qū)的情況
%user: CPU處在用戶模式下的時間百分比。
%nice: CPU處在帶NICE值的用戶模式下的時間百分比。
%system: CPU處在系統(tǒng)模式下的時間百分比。
%iowait: CPU等待輸入輸出完成時間的百分比。
%steal: 管理程序維護(hù)另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比。
%idle: CPU空閑時間百分比。
磁盤名稱
device: 磁盤名稱
tps: 每秒鐘發(fā)送到的I/O請求數(shù).
Blk_read/s: 每秒讀取的block數(shù).
Blk_wrtn/s: 每秒寫入的block數(shù).
Blk_read: 讀入的block總數(shù).
Blk_wrtn: 寫入的block總數(shù).
rrqm/s: 每秒進(jìn)行 merge 的讀操作數(shù)目。即 rmerge/s
wrqm/s: 每秒進(jìn)行 merge 的寫操作數(shù)目。即 wmerge/s
r/s: 每秒完成的讀 I/O 設(shè)備次數(shù)。即 rio/s
w/s: 每秒完成的寫 I/O 設(shè)備次數(shù)。即 wio/s
rkB/s: 每秒讀K字節(jié)數(shù)。是 rsect/s 的一半,因?yàn)槊可葏^(qū)大小為512字節(jié)。
wkB/s: 每秒寫K字節(jié)數(shù)。是 wsect/s 的一半。
avgrq-sz: 平均每次設(shè)備I/O操作的數(shù)據(jù)大小 (扇區(qū))。
avgqu-sz: 平均I/O隊(duì)列長度。
rsec/s: 每秒讀扇區(qū)數(shù)。即 rsect/s
wsec/s: 每秒寫扇區(qū)數(shù)。即 wsect/s
r_await: 每個讀操作平均所需的時間
不僅包括硬盤設(shè)備讀操作的時間,還包括了在kernel隊(duì)列中等待的時間。
w_await: 每個寫操作平均所需的時間
不僅包括硬盤設(shè)備寫操作的時間,還包括了在kernel隊(duì)列中等待的時間。
await: 平均每次設(shè)備I/O操作的等待時間 (毫秒)。
svctm: 平均每次設(shè)備I/O操作的服務(wù)時間 (毫秒)。
%util: 一秒中有百分之多少的時間用于 I/O 操作,即被io消耗的cpu百分比
iostat 可以提供更豐富的IO性能狀態(tài)數(shù)據(jù)
iostat提供幾個用于定制輸出的開關(guān)。最有用的有:
-c 只顯示CPU行
-d 顯示設(shè)備(磁盤)使用狀態(tài)
-k 以千字節(jié)為單位顯示磁盤輸出
-t 在輸出中包括時間戳
-x 在輸出中包括擴(kuò)展的磁盤指標(biāo)
rrqm/s: 每秒進(jìn)行 merge 的讀操作數(shù)目。
wrqm/s: 每秒進(jìn)行 merge 的寫操作數(shù)目。
r/s: 每秒完成的讀 I/O 設(shè)備次數(shù)。
w/s: 每秒完成的寫 I/O 設(shè)備次數(shù)。
rsec/s: 每秒讀扇區(qū)數(shù)。
wsec/s: 每秒寫扇區(qū)數(shù)。
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ù)大小 (扇區(qū))。
avgqu-sz: 平均I/O隊(duì)列長度。
await: 平均每次設(shè)備I/O操作的等待時間 (毫秒)。
svctm: 平均每次設(shè)備I/O操作的服務(wù)時間 (毫秒)。
%util: 一秒中有百分之多少的時間用于 I/O 操作。
關(guān)于Merge的解釋:當(dāng)系統(tǒng)調(diào)用需要讀取數(shù)據(jù)的時 候,VFS將請求發(fā)到各個FS,如果FS發(fā)現(xiàn)不同的讀取請求讀取的是相同Block的數(shù)據(jù),F(xiàn)S會將這個請求合并Merge
await:每一個IO請求的處理的平均時間(單位是毫秒)。這里可以理解為IO的響應(yīng)時間,一般地系統(tǒng)IO響應(yīng)時間應(yīng)該低于5ms,如果大于10ms就比較大了。
%util:在統(tǒng)計(jì)時間內(nèi)所有處理IO時間,除以總共統(tǒng)計(jì)時間。例如,如果統(tǒng)計(jì)間隔1秒,該 設(shè)備有0.8秒在處理IO,而0.2秒閑置,那么該設(shè)備的%util = 0.8/1 = 80%,所以該參數(shù)暗示了設(shè)備的繁忙程度。一般地,如果該參數(shù)是100%表示設(shè)備已經(jīng)接近滿負(fù)荷運(yùn)行了(當(dāng)然如果是多磁盤,即使%util是100%,因 為磁盤的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。