[ops@ip ~]$ iostat --help
Usage: iostat [ options ] [?<interval>[ <count>] ]
Options are:
[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ]
[ -j { ID | LABEL | PATH | UUID | ... } [ [...] | ALL ] ]
[ [...] | ALL ] [ -p [ [,...] | ALL ] ]
命令參數(shù):
-C?顯示CPU使用情況
-d?顯示磁盤使用情況
-k?以?KB?為單位顯示
-m?以?M?為單位顯示
-N?顯示磁盤陣列(LVM)?信息
-n?顯示NFS?使用情況
-p[磁盤]?顯示磁盤和分區(qū)的情況
-t?顯示終端和CPU的信息
-x?顯示詳細(xì)信息
-V?顯示版本信息
常用方法:
iostat -d -k 1 10 ? ? ? ? #查看TPS和吞吐量信息?
iostat -d -x -k 1 10? ? #查看設(shè)備使用率(%util)、響應(yīng)時(shí)間(await)?
iostat -c 1 10 ? ? ? ? ? ?#查看cpu狀態(tài)?
案例分析:
[user@ip ~]$ iostat -d -k 2 5
Linux 3.14.48-33.39.amzn1.x86_64? ? ? ?08/14/2017 ?????_x86_64_?????(4 CPU)
Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn
xvda??????????????0.15?????????0.03?????????0.87?????107088????3435228
Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn
xvda??????????????1.00?????????0.00?????????4.00??????????0??????????8
Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn
xvda??????????????0.50?????????0.00?????????2.00??????????0??????????4
Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn
xvda??????????????0.00?????????0.00?????????0.00??????????0??????????0
Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn
xvda??????????????0.00?????????0.00?????????0.00??????????0??????????0
分析:
輸出結(jié)果一KB為單位,每2秒收集一次信息,一共收集5次,xvda每秒傳輸次數(shù)為0.15,每秒讀磁盤0.03KB,寫磁盤0.87KB,取樣讀磁盤總數(shù)107088KB,寫磁盤總數(shù)為3435228KB
[user@ip ~]$ iostat -d -x -k 3 5
Linux 3.14.48-33.39.amzn1.x86_64? ? ?08/14/2017 ?????_x86_64_?????(4 CPU)
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s????rkB/s????wkB/s avgrq-sz avgqu-sz???await??svctm??%util
xvda??????????????0.00?????0.06????0.00????0.15?????0.03?????0.87????12.04?????0.00????0.38???0.28???0.00
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s????rkB/s????wkB/s avgrq-sz avgqu-sz???await??svctm??%util
xvda??????????????0.00?????0.00????0.00????0.00?????0.00?????0.00?????0.00?????0.00????0.00???0.00???0.00
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s????rkB/s????wkB/s avgrq-sz avgqu-sz???await??svctm??%util
xvda??????????????0.00?????0.67????0.00????0.67?????0.00?????5.33????16.00?????0.00????0.00???0.00???0.00
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s????rkB/s????wkB/s avgrq-sz avgqu-sz???await??svctm??%util
xvda??????????????0.00?????0.00????0.00????0.00?????0.00?????0.00?????0.00?????0.00????0.00???0.00???0.00
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s????rkB/s????wkB/s avgrq-sz avgqu-sz???await??svctm??%util
xvda??????????????0.00?????0.00????0.00????0.00?????0.00?????0.00?????0.00?????0.00????0.00???0.00???0.00
? 分析:
輸出結(jié)果以KB為單位,每3秒收集一次,一共收集5次,每秒向磁盤上寫5KB左右數(shù)據(jù)(wkB/s值),每秒約有1次IO操作(r/s+w/s),其中以寫操作為主體,平均每次IO請(qǐng)求等待處理的時(shí)間為0.38毫秒,處理耗時(shí)為0.28 毫秒,等待處理的IO請(qǐng)求隊(duì)列中,平均有0個(gè)請(qǐng)求駐留
[user@ip ~]$ iostat -c 3 5
Linux 3.14.48-33.39.amzn1.x86_64? ? ? ?08/14/2017 ?????_x86_64_?????(4 CPU)
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
???????????3.96????0.00????1.21????0.00????0.11???94.71
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
???????????4.06????0.00????1.27????0.00????0.08???94.59
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
???????????3.65????0.00????1.19????0.00????0.17???95.00
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
???????????4.06????0.00????1.10????0.00????0.17???94.67
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
???????????3.81????0.00????1.10????0.00????0.08???95.00
分析:
用戶CPU利用率約4%,優(yōu)先級(jí)CPU利用率為0,系統(tǒng)CPU利用率約1.2%,IO掛起空閑百分比為0,虛擬CPU百分比約0.17,IO沒有掛起空閑百分比約95%
單獨(dú)使用
[user@ip ~]$ iostat
Linux 3.14.48-33.39.amzn1.x86_64? ? ? 08/14/2017 ?????_x86_64_?????(4 CPU)
avg-cpu:??%user???%nice ?%system ?%iowait??%steal???%idle
? ? ? ? ? ? ? ? ? 3.96 ? ? ?0.00 ? ? 1.21 ? ? ? ? ?0.00 ? ? ? ? ?0.11 ? ? 94.71
Device: ? ? ?tps???Blk_read/s???Blk_wrtn/s???Blk_read ? ?Blk_wrtn
xvda ? ? ? ? ?0.15?????????0.05?????????1.75 ? ? ? ? ?214177 ? ? 6868520
單獨(dú)執(zhí)行iostat,顯示的結(jié)果為從系統(tǒng)開機(jī)到當(dāng)前執(zhí)行時(shí)刻的統(tǒng)計(jì)信息
案例分析:
用戶CPU利用率為3.96%,優(yōu)先級(jí)用戶CPU利用率為0,系統(tǒng)CPU利用率為1.21%,IO掛起空閑時(shí)間百分比為0,虛擬CPU時(shí)間百分比為0.11%,IO沒有掛起空閑時(shí)間百分比為94.71,xvda每秒傳輸次數(shù)為0.15,每秒讀磁盤0.05,寫磁盤1.75,取樣讀磁盤總數(shù)為214177,寫總數(shù)為6868520
最上面指示系統(tǒng)版本、主機(jī)名和日期
avg-cpu:?總體cpu使用情況統(tǒng)計(jì)信息,對(duì)于多核cpu,這里為所有cpu的平均值
%user : 顯示了在執(zhí)行用戶(應(yīng)用)層時(shí)的CPU利用率
%nice : 顯示了在以nice優(yōu)先級(jí)運(yùn)行用戶層的CPU利用率
%system : 顯示了在執(zhí)行系統(tǒng)(內(nèi)核)層時(shí)的CPU利用率
%iowait : 顯示了CPU在I/O請(qǐng)求掛起時(shí)空閑時(shí)間的百分比
%steal : 顯示了當(dāng)hypervisor正服務(wù)于另外一個(gè)虛擬處理器時(shí)無(wú)意識(shí)地等待虛擬CPU所占有的時(shí)間百分比。
%idle : 顯示了CPU在I/O沒有掛起請(qǐng)求時(shí)空閑時(shí)間的百分比
Device:?各磁盤設(shè)備的IO統(tǒng)計(jì)信息
Device: 設(shè)備名稱
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)求的大小是未知的。
Blk_read/s:?每秒讀扇區(qū)數(shù)量(一扇區(qū)為512bytes)
Blk_wrtn/s:?每秒寫扇區(qū)數(shù)量
Blk_read:?取樣時(shí)間間隔內(nèi)讀扇區(qū)總數(shù)量
Blk_wrtn:?取樣時(shí)間間隔內(nèi)寫扇區(qū)總數(shù)量
如果%iowait的值過(guò)高,表示硬盤存在I/O瓶頸,%idle值高,表示CPU較空閑,如果%idle值高但系統(tǒng)響應(yīng)慢時(shí),有可能是CPU等待分配內(nèi)存,此時(shí)應(yīng)加大內(nèi)存容量。%idle值如果持續(xù)低于10,那么系統(tǒng)的CPU處理能力相對(duì)較低,表明系統(tǒng)中最需要解決的資源是CPU。
指定采樣時(shí)間間隔與采樣次數(shù)
指定iostat命令的采樣間隔和采樣次數(shù):每2秒采集一次,一共采集3次
[user@ip ~]$ iostat -d 2 3
Linux 3.14.48-33.39.amzn1.x86_64? ? ? ?08/14/2017 ?????_x86_64_?????(4 CPU)
Device:????????????tps???Blk_read/s???Blk_wrtn/s???Blk_read???Blk_wrtn
xvda ? ? ? ? ? ? ? ?0.15?????????0.05?????????1.75 ? ? ? ? 214177????6869944
Device:????????????tps???Blk_read/s???Blk_wrtn/s???Blk_read???Blk_wrtn
xvda??????????????0.00?????????0.00?????????0.00??????????0??????????0
Device:????????????tps???Blk_read/s???Blk_wrtn/s???Blk_read???Blk_wrtn
xvda ? ? ? ? ? ? ? ?0.00?????????0.00?????????0.00??????????0??????????0
案例分析:
xvda每秒傳輸次數(shù)為0.15,每秒讀磁盤為0.05,寫磁盤為1.75,取樣讀磁盤總數(shù)為214177,寫磁盤為6869944
以kB為單位顯示讀寫信息(-k選項(xiàng))
使用-k選項(xiàng),指定iostat的部分輸出結(jié)果以kB為單位,而不是以扇區(qū)數(shù)為單位:
[ops@ip ~]$ iostat -d -k
Linux 3.14.48-33.39.amzn1.x86_64? ? ? ?08/14/2017 ?????_x86_64_?????(8 CPU)
Device:????????????tps ? ? ? ?kB_read/s????kB_wrtn/s????kB_read????kB_wrtn
xvda ? ? ? ? ? ? ? ?55.11?????????0.08 ? ? ? ?6979.67 ? ? ? 149976 ? ? 13936026432
以上輸出中,kB_read/s、kB_wrtn/s、kB_read和kB_wrtn的值均以kB為單位,相比以扇區(qū)數(shù)為單位,這里的值為原值的一半(1kB=512bytes*2)
(-m選項(xiàng))以M為單位
[ops@ip ~]$ iostat -m
Linux 3.14.48-33.39.amzn1.x86_64? ? ?08/14/2017 ?????_x86_64_?????(8 CPU)
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
???????????1.75????0.00????0.19????0.86????0.08???97.13
Device:????????????tps????MB_read/s????MB_wrtn/s????MB_read????MB_wrtn
xvda?????????????55.06?????????0.00?????????6.81????????146???13609407
更詳細(xì)的io統(tǒng)計(jì)信息(-x選項(xiàng))
為顯示更詳細(xì)的io設(shè)備統(tǒng)計(jì)信息,我們可以使用-x選項(xiàng),在分析io瓶頸時(shí),一般都會(huì)開啟-x選項(xiàng):
[ops@ip ~]$ iostat -d -k -x 3 3
Linux 3.14.48-33.39.amzn1.x86_64? ? ? 08/14/2017 ?????_x86_64_?????(8 CPU)
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s ? ? ? ?rkB/s????wkB/s ? ? ?avgrq-sz ?avgqu-sz???await ? svctm ? %util?
xvda??????????????0.00?????0.85 ? ? ? ? ?0.01???55.10?????0.08 ? ? 6978.66???253.30?????1.02 ? ? ? ? ? 18.52???0.94 ? ? 5.20?
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s ? ? ?rkB/s ? ? wkB/s ? ? avgrq-sz ? avgqu-sz???await??svctm??%util
xvda??????????????0.00?????0.00 ? ? ? ? 0.00????0.00?????0.00 ? ? ?0.00 ? ? ? ?0.00 ? ? ? ? ? 0.00 ? ? ? ? ? 0.00???0.00???0.00
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s ? ? ?rkB/s ? ? wkB/s ? ?avgrq-sz ? avgqu-sz???await??svctm??%util
xvda??????????????0.00 ? ? ?2.00 ? ? ? ?0.00????1.00?????0.00 ? ? ?13.33 ? ? ?26.67 ? ? ? 0.00 ? ? ? ? ? ?0.00???0.00???0.00
rrqm/s:?每秒對(duì)該設(shè)備的讀請(qǐng)求被合并次數(shù),文件系統(tǒng)會(huì)對(duì)讀取同塊(block)的請(qǐng)求進(jìn)行合并
wrqm/s:?每秒對(duì)該設(shè)備的寫請(qǐng)求被合并次數(shù)
r/s:?每秒完成的讀次數(shù)
w/s:?每秒完成的寫次數(shù)
rkB/s:?每秒讀數(shù)據(jù)量(kB為單位)
wkB/s:?每秒寫數(shù)據(jù)量(kB為單位)
avgrq-sz:平均每次IO操作的數(shù)據(jù)量(扇區(qū)數(shù)為單位)
avgqu-sz:?平均等待處理的IO請(qǐng)求隊(duì)列長(zhǎng)度
await:?平均每次IO請(qǐng)求等待時(shí)間(包括等待時(shí)間和處理時(shí)間,毫秒為單位)
svctm:?平均每次IO請(qǐng)求的處理時(shí)間(毫秒為單位)
%util:?采用周期內(nèi)用于IO操作的時(shí)間比率,即IO隊(duì)列非空的時(shí)間比率
?對(duì)于以上示例輸出,我們可以獲取到以下信息:
每秒向磁盤上寫7M左右數(shù)據(jù)(wkB/s值)
每秒有55次IO操作(r/s+w/s),其中以寫操作為主體
平均每次IO請(qǐng)求等待處理的時(shí)間為18.52毫秒,處理耗時(shí)為0.94 毫秒
等待處理的IO請(qǐng)求隊(duì)列中,平均有1.02個(gè)請(qǐng)求駐留
util = (r/s+w/s) * (svctm/1000)
如果?%util?接近?100%,說(shuō)明產(chǎn)生的I/O請(qǐng)求太多,I/O系統(tǒng)已經(jīng)滿負(fù)荷,該磁盤可能存在瓶頸。如果?svctm?比較接近?await,說(shuō)明?I/O?幾乎沒有等待時(shí)間;如果?await?遠(yuǎn)大于?svctm,說(shuō)明I/O?隊(duì)列太長(zhǎng),io響應(yīng)太慢,則需要進(jìn)行必要優(yōu)化。如果avgqu-sz比較大,也表示有大量io在等待。
獲取cpu部分狀態(tài)值 (-c選項(xiàng))
[ops@ip ~]$ iostat -c 2 3
Linux 3.14.48-33.39.amzn1.x86_64? ? ? ?08/14/2017 ?????_x86_64_?????(8 CPU)
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
? ? ? ? ? ? ? ? ? ? 1.75????0.00????0.19 ? ? ? ? ?0.86 ? ? ? ?0.08 ? ? ?97.13
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
? ? ? ? ? ? ? ? ? ? 0.00????0.00????0.00 ? ? ? ? ?0.00 ? ? ? ?0.00 ? ? 100.00
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
? ? ? ? ? ? ? ? ? ?0.00????0.00????0.00 ? ? ? ? ? 0.00 ? ? ? ?0.00 ? ? 100.00
顯示tty和Cpu信息 (-t選項(xiàng))
[ops@ip ~]$ iostat -t
Linux 3.14.48-33.39.amzn1.x86_64? ? ? 08/14/2017 ?????_x86_64_?????(8 CPU)
08/14/2017 09:19:28 AM
avg-cpu:??%user???%nice %system %iowait??%steal???%idle
? ? ? ? ? ? ? ? 1.75 ? ? ? ?0.00????0.19 ? ? ? ? 0.86 ? ? ? ?0.08 ? ? ?97.13
Device:????????????tps ? ? Blk_read/s???Blk_wrtn/s???Blk_read???Blk_wrtn
xvda ? ? ? ? ? ? ? ?55.05?????????0.15?????13944.15?????299952 ? ? 27872069752