iostat命令可以提供豐富的IO性能狀態(tài)數(shù)據(jù)。iostat可以收集和顯示系統(tǒng)輸入/輸出存儲(chǔ)設(shè)備方面的統(tǒng)計(jì)信息.經(jīng)常用于追查存儲(chǔ)設(shè)備性能方面的問(wèn)題,包括設(shè)備,本地磁盤和nfs等遠(yuǎn)程磁盤。
iostat提供幾個(gè)用于定制輸出的開關(guān)。最有用的有:
-c 只顯示CPU行
-d 顯示設(shè)備(磁盤)使用狀態(tài)
-k 以千字節(jié)為單位顯示磁盤輸出
-t 在輸出中包括時(shí)間戳
-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ì)列長(zhǎng)度。
await: 平均每次設(shè)備I/O操作的等待時(shí)間 (毫秒)。
svctm: 平均每次設(shè)備I/O操作的服務(wù)時(shí)間 (毫秒)。
%util: 一秒中有百分之多少的時(shí)間用于 I/O 操作。
關(guān)于Merge的解釋:當(dāng)系統(tǒng)調(diào)用需要讀取數(shù)據(jù)的時(shí) 候,VFS將請(qǐng)求發(fā)到各個(gè)FS,如果FS發(fā)現(xiàn)不同的讀取請(qǐng)求讀取的是相同Block的數(shù)據(jù),F(xiàn)S會(huì)將這個(gè)請(qǐng)求合并Merge
await:每一個(gè)IO請(qǐng)求的處理的平均時(shí)間(單位是毫秒)。這里可以理解為IO的響應(yīng)時(shí)間,一般地系統(tǒng)IO響應(yīng)時(shí)間應(yīng)該低于5ms,如果大于10ms就比較大了。
%util:在統(tǒng)計(jì)時(shí)間內(nèi)所有處理IO時(shí)間,除以總共統(tǒng)計(jì)時(shí)間。例如,如果統(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ā)能力,所以磁盤使用未必就到了瓶頸)。
這里有幾塊ssd卡供數(shù)據(jù)庫(kù)使用.看下實(shí)際使用情況.
root@10.1.1.200:~# df -h
root@10.1.1.200:~# iostat -d -m 1 5
#參數(shù) -d表示顯示設(shè)備磁盤使用狀態(tài);-m 使用megabytes為顯示單位. 1 5表示每隔1秒刷新一次,共顯示5次.
Linux 2.6.18-6-amd64 (192.168.2.31) 02/16/2016 _x86_64_
tps:該設(shè)備每秒的傳輸次數(shù),一次傳輸意思是一次I/O請(qǐng)求,多個(gè)邏輯請(qǐng)求肯呢過(guò)會(huì)被合并為一次I/O請(qǐng)求.一次傳輸請(qǐng)求的大小是不確定的.
MB_read/s:每秒從設(shè)備讀取的數(shù)據(jù)量.
MB_wrtn/s:每秒向設(shè)備寫入的數(shù)據(jù)量.
MB_read:讀取的總數(shù)據(jù)量.
MB_wrtn:寫入的總數(shù)據(jù)量.
當(dāng)前統(tǒng)計(jì)的ssd卡的磁盤總TPS為551.49.量還比較大.
下面使用-x參數(shù)以獲得更多統(tǒng)計(jì)信息
root@10.1.1.200:~# iostat -d -x -m 1 5
Linux 2.6.18-6-amd64 (192.168.2.31) 02/16/2016 _x86_64_
rrqm/s:每秒這個(gè)設(shè)備相關(guān)的讀取請(qǐng)求有多少被merge.
wrqm/s:每秒這個(gè)設(shè)備相關(guān)的寫入請(qǐng)求有多少被merge.
rMB/s:每秒讀取的扇區(qū)數(shù).
wMB/s:每秒寫入的扇區(qū)數(shù).
await:每一個(gè)IO請(qǐng)求的處理的平均時(shí)間(單位毫秒),可以理解為IO的響應(yīng)時(shí)間,一般系統(tǒng)IO響應(yīng)時(shí)間應(yīng)該低于5ms,如果大于10ms就比較大.
%util:在統(tǒng)計(jì)時(shí)間內(nèi)所有處理IO時(shí)間,除以總共統(tǒng)計(jì)時(shí)間.可以理解為設(shè)備使用率
這里可以看到ssd卡在使用率接近100%,寫入大量數(shù)據(jù)時(shí),await響應(yīng)時(shí)間還保持在1ms以下,看來(lái)性能果然不錯(cuò).
還可以使用-c參數(shù)查看cpu狀態(tài)
root@10.1.1.200:~# iostat -c 1 5
Linux 2.6.18-6-amd64 (192.168.2.31) 02/16/2016 _x86_64_