通過IOStat命令監(jiān)控IO性能-創(chuàng)新互聯(lián)

小技巧:你知道iostat是從哪里得到IO相關(guān)信息的嗎?使用strace命令能跟蹤到答案:

成都創(chuàng)新互聯(lián)長(zhǎng)期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為崇信企業(yè)提供專業(yè)的成都網(wǎng)站制作、成都做網(wǎng)站,崇信網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
shell> strace -eopen iostat
open("/proc/diskstats", O_RDONLY)

注:Strace教程:5 simple ways to troubleshoot using Strace

注:關(guān)于diskstats的說明,參見官方文檔(主要是其中的field1 ~ field11部分)。

如果你的操作系統(tǒng)里沒有iostat命令的話,除了從源代碼安裝,還可以使用下面方式:

  • Centos/Fedora的安裝方式是:yum install sysstat
  • Debian/Ubuntu的安裝方式是:aptitude install sysstat

我最常用的iostat命令格式是:『iostat -dx 1』,意思是每隔一秒顯示一次IO擴(kuò)展信息。

shell> iostat -dx 1
Device:         rrqm/s  wrqm/s   r/s  w/s   rsec/s  wsec/s
sda               0.18    37.71  0.65  2.63    50.18   322.08
                avgrq-sz avgqu-sz   await  svctm  %util
                  113.46     0.35  107.49   1.67   0.55

Device:         rrqm/s  wrqm/s   r/s  w/s   rsec/s  wsec/s
sda               0.00  4208.00  0.00 165.00     0.00 163872.00
                avgrq-sz avgqu-sz   await  svctm  %util
                  993.16   119.54 1144.36   6.07 100.10

注:開頭顯示的是自系統(tǒng)啟動(dòng)開始的平均值,后面顯示的是每段時(shí)間間隔里的平均值。

介紹一下相關(guān)參數(shù)的含義:

  • rrqm/s:隊(duì)列中每秒鐘合并的讀請(qǐng)求數(shù)量
  • wrqm/s:隊(duì)列中每秒鐘合并的寫請(qǐng)求數(shù)量
  • r/s:每秒鐘完成的讀請(qǐng)求數(shù)量
  • w/s:每秒鐘完成的寫請(qǐng)求數(shù)量
  • rsec/s:每秒鐘讀取的扇區(qū)數(shù)量
  • wsec/s:每秒鐘寫入的扇區(qū)數(shù)量
  • avgrq-sz:平均請(qǐng)求扇區(qū)的大小
  • avgqu-sz:平均請(qǐng)求隊(duì)列的長(zhǎng)度
  • await:平均每次請(qǐng)求的等待時(shí)間
  • svctm:平均每次請(qǐng)求的服務(wù)時(shí)間
  • util:設(shè)備的利用率

注:建議對(duì)照源代碼來(lái)記憶這些參數(shù)都是如何計(jì)算出來(lái)的。

關(guān)于這些參數(shù),相對(duì)重要的是后面幾個(gè),具體來(lái)說是:util,svctm,await,avgqu-sz:

util是設(shè)備的利用率。如果它接近100%,通常說明設(shè)備能力趨于飽和(并不絕對(duì))。有時(shí)候會(huì)出現(xiàn)大于100%的情況,這是因?yàn)樽x取數(shù)據(jù)的時(shí)候是非原子操作。

svctm是平均每次請(qǐng)求的服務(wù)時(shí)間。從源代碼里可以看出:(r/s+w/s)*(svctm/1000)=util。舉例子:如果util達(dá)到 100%,那么此時(shí)svctm=1000/(r/s+w/s),假設(shè)IOPS是1000,那么svctm大概在1毫秒左右,如果長(zhǎng)時(shí)間大于這個(gè)數(shù)值,說明 系統(tǒng)出了問題。

await是平均每次請(qǐng)求的等待時(shí)間。這個(gè)時(shí)間包括了隊(duì)列時(shí)間和服務(wù)時(shí)間,也就是說,一般情況下,await大于svctm,它們的差值越小,則說明隊(duì)列時(shí)間越短,反之差值越大,隊(duì)列時(shí)間越長(zhǎng),說明系統(tǒng)出了問題。

avgqu-sz是平均請(qǐng)求隊(duì)列的長(zhǎng)度。毫無(wú)疑問,隊(duì)列長(zhǎng)度越短越好。

說明:svctm參數(shù)在未來(lái)某個(gè)版本的iostat會(huì)被刪除,官方文檔是這樣描述原因的:

The average service time (svctm field) value is meaningless, as I/O statistics are calculated at block level, and we don’t know when the disk driver starts to process a request. For this reason, this field will be removed in a future sysstat version.

另外,有時(shí)候iostat會(huì)顯示一些很離譜的結(jié)果,官方FAQ給出了如下的解釋:

Because of a Linux kernel bug, iostat -x may display huge I/O response times (svctm) and a bandwidth utilization (%util) of 100% for some devices. Indeed these devices have a value for the field #9 (beginning after the device name) in /proc/{partitions,diskstats} which is always different from 0, and even negative sometimes. Yet this field should go to zero, since it gives the number of I/Os currently in progress (it is incremented as requests are submitted, and decremented as they finish). To (temporarily) solve the problem, you should reboot your system to reset the counters in /proc/{partitions,diskstats}.

如果大家想要更系統(tǒng)的了解關(guān)于IO的相關(guān)知識(shí),可以參考如下資料:

  • Getting the hang of IOPS
  • Basic I/O Monitoring on Linux

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:通過IOStat命令監(jiān)控IO性能-創(chuàng)新互聯(lián)
標(biāo)題來(lái)源:http://bm7419.com/article2/dcococ.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、微信小程序、定制網(wǎng)站、外貿(mào)建站、網(wǎng)站排名、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)