linux命令學(xué)習(xí)(31)-iostat
【命令名稱】iostat
【使用權(quán)限】所有人
【命令語法】iostat [參數(shù)][時(shí)間][次數(shù)]
【功能說明】查看cpu,硬盤等設(shè)備的活動(dòng)情況
【常用參數(shù)】c 顯示cpu使用信息
d 顯示磁盤使用信息,后面可以指定分區(qū)。
N 顯示磁盤陣列(LVM)使用信息
n 顯示NFS的使用信息
p 顯示各個(gè)分區(qū)的使用信息
k 以KB為單位顯示
m 以MB為單位顯示
t 顯示終端和CPU的信息
x 顯示詳細(xì)的信息
【命令實(shí)例】
1.第隔2秒鐘就運(yùn)行一次iostat,共2次
[cxc@cxcserver ~]$ iostat 2 2
Linux 2.6.32-279.el6.x86_64 (cxcserver.computer) 01/30/2013 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.03 0.00 0.01 0.04 0.00 99.92
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.25 3.22 6.42 139764 278325
dm-0 0.00 0.02 0.00 848 0
avg-cpu: %user %nice %system %iowait %steal %idle
0.75 0.00 0.25 0.00 0.00 99.00
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.50 0.00 128.00 0 256
dm-0 0.00 0.00 0.00 0 0
[cxc@cxcserver ~]$
cpu屬性值說明:
%user: CPU處在用戶模式下的時(shí)間百分比
%nice: CPU處在帶NICE值的用戶模式下時(shí)間比
%system: CPU處在系統(tǒng)模式下的時(shí)間的百分比
%iowait: CPU等待輸入輸出完成時(shí)間的百分比
%idle: CPU空閑時(shí)間的百分比
%steal: 當(dāng)管理另一虛擬CPU時(shí),虛擬CPU的意識(shí)的等待百分比
說明:如果%iowait的值過高,表示硬盤存在I/O瓶頸,idle的值越高,表示CPU比較空閑,如果idle值高但系統(tǒng)響應(yīng)速度慢時(shí),可能是CPU等待分配內(nèi)存,我們可以用free來查看內(nèi)存。如果swap被占用多數(shù),可以考慮內(nèi)存。如果的%Idle的值持續(xù)低的話,表示考慮加增加CPU
2.iostat 輸出所以分區(qū)信息
[cxc@cxcserver ~]$ iostat -p
Linux 2.6.32-279.el6.x86_64 (cxcserver.computer) 01/30/2013 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.03 0.00 0.01 0.04 0.00 99.92
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.25 3.15 6.43 139764 285213
sda1 0.21 2.93 6.43 129818 285208
sda3 0.00 0.03 0.00 1384 0
sda4 0.00 0.00 0.00 20 1
sda5 0.01 0.07 0.00 3008 0
sda6 0.01 0.04 0.00 1744 0
sda7 0.01 0.03 0.00 1542 0
dm-0 0.00 0.02 0.00 848 0
[cxc@cxcserver ~]
硬盤簡(jiǎn)單屬性說明:
Device 設(shè)備名稱
Tps 設(shè)備每秒的傳輸次數(shù),“一次傳輸”的意思是“一次I/O請(qǐng)求”。多個(gè)邏輯請(qǐng)求可能會(huì)被合并為“一次I/O”請(qǐng)求
Blk_read/s:開機(jī)到現(xiàn)在,平均每秒從設(shè)備讀取數(shù)據(jù)量
Blk_wrtn/s:開機(jī)到現(xiàn)在,平均每秒從設(shè)備寫入數(shù)據(jù)量
Blk_read 開機(jī)到現(xiàn)在,讀取的數(shù)據(jù)問題
Blk_wrtn 開機(jī)到現(xiàn)在,寫入的數(shù)據(jù)總量
3. iostate詳細(xì)輸出硬盤的詳細(xì)信息
[cxc@cxcserver ~]$ iostat -d -x -k -p
Linux 2.6.32-279.el6.x86_64 (cxcserver.computer) 01/30/2013 _x86_64_ (2 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.13 0.63 0.07 0.17 1.52 3.22 38.65 0.00 5.49 4.57 0.11
sda1 0.04 0.63 0.04 0.17 1.41 3.22 43.53 0.00 5.92 5.10 0.11
sda3 0.00 0.00 0.00 0.00 0.02 0.00 8.49 0.00 4.02 4.01 0.00
sda4 0.00 0.00 0.00 0.00 0.00 0.00 4.20 0.00 52.00 52.00 0.00
sda5 0.00 0.00 0.01 0.00 0.03 0.00 8.72 0.00 1.58 1.58 0.00
sda6 0.02 0.00 0.01 0.00 0.02 0.00 5.24 0.00 1.86 1.69 0.00
sda7 0.03 0.00 0.01 0.00 0.02 0.00 6.24 0.00 2.96 2.84 0.00
dm-0 0.00 0.00 0.00 0.00 0.01 0.00 7.64 0.00 1.40 1.06 0.00
[cxc@cxcserver ~]$
Rrqm/s 每秒進(jìn)行merge的讀操作數(shù)目,即delta(rmerge)/s
Wrqm/s 每秒進(jìn)行merge的寫操作數(shù)目,即delta(wmerge)/s
r/s 每秒完成讀I/O設(shè)備次數(shù),即delta(rio)/s
w/s 每秒完成寫I/O設(shè)備次數(shù),即delta(wio)/s
rsec/s 每秒讀扇區(qū)數(shù)
wsec/s 每秒寫扇區(qū)數(shù)
rkB/s 每秒讀k字節(jié)數(shù)
wkB/s 每秒寫k字節(jié)數(shù)
avgrq-sz 平均每次設(shè)備I/O操作的數(shù)據(jù)大小,rsect+wsect/rio+wio
avgqu-sz 平均I/O隊(duì)列長(zhǎng)度,即delta(aveg)/s/1000
await 平均每次設(shè)備I/O操作的等待時(shí)間(毫秒)即delta(ruse+wuse)/delta(rio+wio)
svctm 平均每次設(shè)備I/O操作的服務(wù)時(shí)間(毫秒)即delta(use)/delta(rio+wio)
%util 一秒鐘有百分之多少的時(shí)間用于I/O的操作,
如果%util接近100%,I/O系統(tǒng)已經(jīng)滿負(fù)荷,磁盤出現(xiàn)瓶頸
如果%util接近70%,I/O壓力就大了,一般讀取速度有較多的wait
avgqu-sz 也是個(gè)做 IO 調(diào)優(yōu)時(shí)需要注意的地方,這個(gè)就是直接每次操作的數(shù)據(jù)的大小,如果次數(shù)多,但數(shù)據(jù)拿的小的話,其實(shí) IO 也會(huì)很小。如果數(shù)據(jù)拿的大,才IO 的數(shù)據(jù)會(huì)高。也可以通過 avgqu-sz × ( r/s or w/s ) = rsec/s or wsec/s。也就是講,讀定速度是這個(gè)來決定的。
svctm 一般要小于 await (因?yàn)橥瑫r(shí)等待的請(qǐng)求的等待時(shí)間被重復(fù)計(jì)算了),svctm 的大小一般和磁盤性能有關(guān),CPU/內(nèi)存的負(fù)荷也會(huì)對(duì)其有影響,請(qǐng)求過多也會(huì)間接導(dǎo)致 svctm 的增加。await 的大小一般取決于服務(wù)時(shí)間(svctm) 以及 I/O 隊(duì)列的長(zhǎng)度和 I/O 請(qǐng)求的發(fā)出模式。如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時(shí)間;如果 await 遠(yuǎn)大于 svctm,說明 I/O 隊(duì)列太長(zhǎng),應(yīng)用得到的響應(yīng)時(shí)間變慢,如果響應(yīng)時(shí)間超過了用戶可以容許的范圍,這時(shí)可以考慮更換更快的磁盤,調(diào)整內(nèi)核 elevator 算法,優(yōu)化應(yīng)用,或者升級(jí) CPU。
隊(duì)列長(zhǎng)度(avgqu-sz)也可作為衡量系統(tǒng) I/O 負(fù)荷的指標(biāo),但由于 avgqu-sz 是按照單位時(shí)間的平均值,所以不能反映瞬間的 I/O 洪水。
4.通過iostat輸出cpu信息
[cxc@cxcserver ~]$ iostat -c
Linux 2.6.32-279.el6.x86_64 (cxcserver.computer) 01/30/2013 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.03 0.00 0.01 0.04 0.00 99.93
[cxc@cxcserver ~]$