linux命令详解——iostat
簡(jiǎn)介
iostat主要用于監(jiān)控系統(tǒng)設(shè)備的IO負(fù)載情況,iostat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開(kāi)始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行iostat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶可以通過(guò)指定統(tǒng)計(jì)的次數(shù)和時(shí)間來(lái)獲得所需的統(tǒng)計(jì)信息。
?
安裝
yum install -y sysstat
語(yǔ)法
iostat [ -c ] [ -d ] [ -h ] [ -N ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -z ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ]
iostat各個(gè)參數(shù)說(shuō)明:
-c 僅顯示CPU統(tǒng)計(jì)信息.與-d選項(xiàng)互斥.-d 僅顯示磁盤(pán)統(tǒng)計(jì)信息.與-c選項(xiàng)互斥.-k 以K為單位顯示每秒的磁盤(pán)請(qǐng)求數(shù),默認(rèn)單位塊.-p device | ALL與-x選項(xiàng)互斥,用于顯示塊設(shè)備及系統(tǒng)分區(qū)的統(tǒng)計(jì)信息.也可以在-p后指定一個(gè)設(shè)備名,如:# <span class="search_hit" style="margin: 0px; padding: 0px;">iostat</span> -p hda或顯示所有設(shè)備# <span class="search_hit" style="margin: 0px; padding: 0px;">iostat</span> -p ALL-t 在輸出數(shù)據(jù)時(shí),打印搜集數(shù)據(jù)的時(shí)間.-V 打印版本號(hào)和幫助信息.-x 輸出擴(kuò)展信息.?
入門(mén)使用
iostat -d -k 2參數(shù) -d 表示,顯示設(shè)備(磁盤(pán))使用狀態(tài);-k某些使用block為單位的列強(qiáng)制使用Kilobytes為單位;2表示,數(shù)據(jù)顯示每隔2秒刷新一次。
輸出如下
iostat -d -k 1 10 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 39.29 21.14 1.44 441339807 29990031 sda1 0.00 0.00 0.00 1623 523 sda2 1.32 1.43 4.54 29834273 94827104 sda3 6.30 0.85 24.95 17816289 520725244 sda5 0.85 0.46 3.40 9543503 70970116 sda6 0.00 0.00 0.00 550 236 sda7 0.00 0.00 0.00 406 0 sda8 0.00 0.00 0.00 406 0 sda9 0.00 0.00 0.00 406 0 sda10 60.68 18.35 71.43 383002263 1490928140Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 327.55 5159.18 102.04 5056 100 sda1 0.00 0.00 0.00 0 0輸出信息的意義
tps:該設(shè)備每秒的傳輸次數(shù)(Indicate the number of transfers per second that were issued to the device.)。"一次傳輸"意思是"一次I/O請(qǐng)求"。多個(gè)邏輯請(qǐng)求可能會(huì)被合并為"一次I/O請(qǐng)求"。"一次傳輸"請(qǐng)求的大小是未知的。kB_read/s:每秒從設(shè)備(drive expressed)讀取的數(shù)據(jù)量; kB_wrtn/s:每秒向設(shè)備(drive expressed)寫(xiě)入的數(shù)據(jù)量; kB_read:取樣時(shí)間間隔內(nèi),讀取的總數(shù)據(jù)量; kB_wrtn:取樣時(shí)間間隔內(nèi),寫(xiě)入的總數(shù)量數(shù)據(jù)量;這些單位都為Kilobytes。上面的例子中,我們可以看到磁盤(pán)sda以及它的各個(gè)分區(qū)的統(tǒng)計(jì)數(shù)據(jù),當(dāng)時(shí)統(tǒng)計(jì)的磁盤(pán)總TPS是39.29,下面是各個(gè)分區(qū)的TPS。(因?yàn)槭撬查g值,所以總TPS并不嚴(yán)格等于各個(gè)分區(qū)TPS的總和)
各個(gè)輸出項(xiàng)目的含義如下:
<strong>avg-cpu段:</strong> %user: 在用戶級(jí)別運(yùn)行所使用的CPU的百分比. %nice: nice操作所使用的CPU的百分比. %sys: 在系統(tǒng)級(jí)別(kernel)運(yùn)行所使用CPU的百分比. %iowait: CPU等待硬件I/O時(shí),所占用CPU百分比. %idle: CPU空閑時(shí)間的百分比. <strong>Device段:</strong> tps: 每秒鐘發(fā)送到的I/O請(qǐng)求數(shù). Blk_read /s: 每秒讀取的block數(shù). <span class="search_hit" style="margin: 0px; padding: 0px;">Blk_wrtn</span>/s: 每秒寫(xiě)入的block數(shù). Blk_read: <span style="font-family: 'Courier New'; line-height: 1.5 !important;">取樣時(shí)間間隔內(nèi),</span><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;">讀入的block總數(shù).</span> <span class="search_hit" style="margin: 0px; padding: 0px;">Blk_wrtn</span>: <span style="font-family: 'Courier New'; line-height: 1.5 !important;">取樣時(shí)間間隔內(nèi),</span><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;">寫(xiě)入的block總數(shù).</span>?指定監(jiān)控的設(shè)備名稱為sda,該命令的輸出結(jié)果和上面命令完全相同。
iostat -d sda 2默認(rèn)監(jiān)控所有的硬盤(pán)設(shè)備,現(xiàn)在指定只監(jiān)控sda。?
?
-x 參數(shù)
iostat還有一個(gè)比較常用的選項(xiàng)-x,該選項(xiàng)將用于顯示和io相關(guān)的擴(kuò)展數(shù)據(jù)。
iostat -d -x -k 1 10 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 1.56 28.31 7.80 31.49 42.51 2.92 21.26 1.46 1.16 0.03 0.79 2.62 10.28 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 2.00 20.00 381.00 7.00 12320.00 216.00 6160.00 108.00 32.31 1.75 4.50 2.17 84.20?
輸出信息的含義
rrqm/s:每秒這個(gè)設(shè)備相關(guān)的讀取請(qǐng)求有多少被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ù),FS會(huì)將這個(gè)請(qǐng)求合并Merge);wrqm/s:每秒這個(gè)設(shè)備相關(guān)的寫(xiě)入請(qǐng)求有多少被Merge了。rsec/s:每秒讀取的扇區(qū)數(shù); wsec/:每秒寫(xiě)入的扇區(qū)數(shù)。 rKB/s:The number of read requests that were issued to the device per second; wKB/s:The number of write requests that were issued to the device per second; avgrq-sz 平均請(qǐng)求扇區(qū)的大小 avgqu-sz 是平均請(qǐng)求隊(duì)列的長(zhǎng)度。毫無(wú)疑問(wèn),隊(duì)列長(zhǎng)度越短越好。 await: 每一個(gè)IO請(qǐng)求的處理的平均時(shí)間(單位是微秒毫秒)。這里可以理解為IO的響應(yīng)時(shí)間,一般地系統(tǒng)IO響應(yīng)時(shí)間應(yīng)該低于5ms,如果大于10ms就比較大了。這個(gè)時(shí)間包括了隊(duì)列時(shí)間和服務(wù)時(shí)間,也就是說(shuō),一般情況下,await大于svctm,它們的差值越小,則說(shuō)明隊(duì)列時(shí)間越短,反之差值越大,隊(duì)列時(shí)間越長(zhǎng),說(shuō)明系統(tǒng)出了問(wèn)題。 svctm 表示平均每次設(shè)備I/O操作的服務(wù)時(shí)間(以毫秒為單位)。如果svctm的值與await很接近,表示幾乎沒(méi)有I/O等待,磁盤(pán)性能很好,如果await的值遠(yuǎn)高于svctm的值,則表示I/O隊(duì)列等待太長(zhǎng), 系統(tǒng)上運(yùn)行的應(yīng)用程序?qū)⒆兟?/span> %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)然如果是多磁盤(pán),即使%util是100%,因?yàn)榇疟P(pán)的并發(fā)能力,所以磁盤(pán)使用未必就到了瓶頸)。?
-c 參數(shù)
iostat還可以用來(lái)獲取cpu部分狀態(tài)值:
iostat -c 1 10 avg-cpu: %user %nice %sys %iowait %idle 1.98 0.00 0.35 11.45 86.22 avg-cpu: %user %nice %sys %iowait %idle 1.62 0.00 0.25 34.46 63.67?
常見(jiàn)用法
iostat -d -k 1 10 #查看TPS和吞吐量信息(磁盤(pán)讀寫(xiě)速度單位為KB) iostat -d -m 2 #查看TPS和吞吐量信息(磁盤(pán)讀寫(xiě)速度單位為MB) iostat -d -x -k 1 10 #查看設(shè)備使用率(%util)、響應(yīng)時(shí)間(await) iostat -c 1 10 #僅查看cpu狀態(tài)?
?
實(shí)例分析
ostat -d -k 1 |grep sda10 Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda10 60.72 18.95 71.53 395637647 1493241908 sda10 299.02 4266.67 129.41 4352 132 sda10 483.84 4589.90 4117.17 4544 4076 sda10 218.00 3360.00 100.00 3360 100 sda10 546.00 8784.00 124.00 8784 124 sda10 827.00 13232.00 136.00 13232 136上面看到,磁盤(pán)每秒傳輸次數(shù)平均約400;每秒磁盤(pán)讀取約5MB,寫(xiě)入約1MB。
?
iostat -d -x -k 1 Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util sda 1.56 28.31 7.84 31.50 43.65 3.16 21.82 1.58 1.19 0.03 0.80 2.61 10.29 sda 1.98 24.75 419.80 6.93 13465.35 253.47 6732.67 126.73 32.15 2.00 4.70 2.00 85.25 sda 3.06 41.84 444.90 54.08 14204.08 2048.98 7102.04 1024.49 32.57 2.10 4.21 1.85 92.24可以看到磁盤(pán)的平均響應(yīng)時(shí)間<5ms,磁盤(pán)使用率>80。磁盤(pán)響應(yīng)正常,但是已經(jīng)很繁忙了。
轉(zhuǎn)載于:https://www.cnblogs.com/huangmr0811/p/5570949.html
總結(jié)
以上是生活随笔為你收集整理的linux命令详解——iostat的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: stm32f4xx 的EXTI使用的一般
- 下一篇: Linux高级编程--01.vi命令