linux 性能测试iostat,Linux性能分析之二(iostat)
前言
在之前的博客中我們詳細的說明了性能瓶頸的解決思路,也詳細介紹了Vmstat的使用,今天我們就詳細說說磁盤IO的那些事,磁盤IO是我們最常遇到的瓶頸,下面我們根據iostat詳細聊聊磁盤IO
一、磁盤IO性能指標
1.1、每秒IO數(tps)
對于磁盤來說,一次磁盤的連續讀或者連續寫稱為一次磁盤?I/O,?磁盤的?IOPS?就是每秒磁盤連續讀次數和連續寫次數之和
1.2、吞吐量(?Throughput)
指硬盤傳輸數據流的速度,傳輸數據為讀出數據和寫入數據的和。其單位一般為?Kbps, MB/s?等。
1.3、磁盤活動時間百分比(?Utilization)?%util
磁盤處于活動時間的百分比,即磁盤利用率,磁盤在數據傳輸和處理命令(如尋道)處于活動狀態。磁盤利用率與資源爭用程度成正比,與性能成反比。也就是說磁盤利用率越高,資源爭用就越嚴重,性能也就越差,響應時間就越長。一般來說,如果磁盤利用率超過?70%,應用進程將花費較長的時間等待?I/O?完成,因為絕大多數進程在等待過程中將被阻塞或休眠。
1.4、服務時間(?ServiceTime)?svctm
指磁盤讀或寫操作執行的時間,包括尋道,旋轉時延,和數據傳輸等時間。其大小一般和磁盤性能有關,?CPU/內存的負荷也會對其有影響,請求過多也會間接導致服務時間的增加。如果該值持續超過20ms,一般可考慮會對上層應用產生影響。
1.5、I/O?等待隊列長度(?Queue Length)
指待處理的?I/O?請求的數目,如果?I/O?請求壓力持續超出磁盤處理能力,該值將增加。如果單塊磁盤的隊列長度持續超過2,一般認為該磁盤存在I/O性能問題。需要注意的是,如果該磁盤為磁盤陣列虛擬的邏輯驅動器,需要再將該值除以組成這個邏輯驅動器的實際物理磁盤數目,以獲得平均單塊硬盤的?I/O?等待隊列長度。
1.6、等待時間(?Wait Time)
指磁盤讀或寫操作等待執行的時間,即在隊列中排隊的時間。如果I/O請求持續超出磁盤處理能力,意味著來不及處理的?I/O?請求不得不在隊列中等待較長時間。
二、Iostat詳解
2.1、安裝iostat命令1yum?install?sysstat??-y
2.2、iostat參數詳解1
2
3
4
5
6
7[root@tshare365?~]#?iostat??--help
Usage:?iostat?[?options?]?[??[??]?]
Options?are:
[?-c?]?[?-d?]?[?-N?]?[?-n?]?[?-h?]?[?-k?|?-m?]?[?-t?]?[?-V?]?[?-x?]?[?-y?]?[?-z?]
[?-j?{?ID?|?LABEL?|?PATH?|?UUID?|?...?}?[??[...]?|?ALL?]?]
[??[...]?|?ALL?]?[?-p?[??[,...]?|?ALL?]?]
[root@tshare365?~]#
我們最常用的是
-C?顯示CPU使用情況
-d?顯示磁盤使用情況
-x?顯示詳細信息
-k?以?KB?為單位顯示
-m?以?M?為單位顯示
2.3、iostat查看服務器IO情況1
2
3
4
5
6
7
8
9
10
11
12
13[root@tshare365?~]#?iostat??-x
Linux?2.6.32-431.el6.x86_64?(tshare365)? 02/26/2015?????_x86_64_??? (1?CPU)
avg-cpu:??%user???%nice?%system?%iowait??%steal???%idle
0.03????0.00????0.15????0.04????0.00???99.78
Device:?????????rrqm/s???wrqm/s?????r/s?????w/s???rsec/s???wsec/s?avgrq-sz?avgqu-sz???await??svctm??%util
sda???????????????0.21?????3.06????0.06????0.22?????5.05????26.32???113.45?????0.01???48.50???4.05???0.11
scd0??????????????0.00?????0.00????0.00????0.00?????0.00?????0.00?????8.00?????0.00????0.88???0.88???0.00
dm-0??????????????0.00?????0.00????0.26????3.28?????4.95????26.32?????8.84?????1.35??382.60???0.31???0.11
dm-1??????????????0.00?????0.00????0.00????0.00?????0.03?????0.00?????8.00?????0.00????5.88???1.29???0.00
[root@tshare365?~]#
cpu屬性值說明:%user:CPU處在用戶模式下的時間百分比。
%nice:CPU處在帶NICE值的用戶模式下的時間百分比。
%system:CPU處在系統模式下的時間百分比。
%iowait:CPU等待輸入輸出完成時間的百分比。
%steal:管理程序維護另一個虛擬處理器時,虛擬CPU的無意識等待時間百分比。
%idle:CPU空閑時間百分比。
備注:如果%iowait的值過高,表示硬盤存在I/O瓶頸,%idle值高,表示CPU較空閑,如果%idle值高但系統響應慢時,有可能是CPU等待分配內存,此時應加大內存容量。%idle值如果持續低于10,那么系統的CPU處理能力相對較低,表明系統中最需要解決的資源是CPU。
disk屬性值說明:rrqm/s:??每秒進行?merge?的讀操作數目。即?rmerge/s
wrqm/s:??每秒進行?merge?的寫操作數目。即?wmerge/s
r/s:??每秒完成的讀?I/O?設備次數。即?rio/s
w/s:??每秒完成的寫?I/O?設備次數。即?wio/s
rsec/s:??每秒讀扇區數。即?rsect/s
wsec/s:??每秒寫扇區數。即?wsect/s
rkB/s:??每秒讀K字節數。是?rsect/s?的一半,因為每扇區大小為512字節。
wkB/s:??每秒寫K字節數。是?wsect/s?的一半。
avgrq-sz:??平均每次設備I/O操作的數據大小?(扇區)。
avgqu-sz:??平均I/O隊列長度。
await:??平均每次設備I/O操作的等待時間?(毫秒)。
svctm:?平均每次設備I/O操作的服務時間?(毫秒)。
%util:??一秒中有百分之多少的時間用于?I/O?操作,即被io消耗的cpu百分比
備注:如果?%util?接近?100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。如果?svctm?比較接近?await,說明?I/O?幾乎沒有等待時間;如果?await?遠大于?svctm,說明I/O?隊列太長,IO響應太慢,則需要進行必要優化。如果avgqu-sz比較大,也表示有當前IO在等待。
2.4、查看磁盤的吞吐量1
2
3
4
5
6
7
8
9
10[root@tshare365?~]#?iostat??-d?-k
Linux?2.6.32-431.el6.x86_64?(tshare365)? 02/26/2015?????_x86_64_??? (1?CPU)
Device:????????????tps????kB_read/s????kB_wrtn/s????kB_read????kB_wrtn
sda???????????????0.28?????????2.51????????13.07?????214679????1119426
scd0??????????????0.00?????????0.00?????????0.00????????132??????????0
dm-0??????????????3.51?????????2.46????????13.07?????210381????1119388
dm-1??????????????0.00?????????0.01?????????0.00???????1188??????????0
[root@tshare365?~]#
tps:該設備每秒的傳輸次數
kB_read/s:每秒從設備(drive?expressed)讀取的數據量;
kB_wrtn/s:每秒向設備(drive?expressed)寫入的數據量;
kB_read:讀取的總數據量;
kB_wrtn:寫入的總數量數據量;
本博客至此介紹,如有什么問題請留言!
總結
以上是生活随笔為你收集整理的linux 性能测试iostat,Linux性能分析之二(iostat)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone 14 Pro古铜配色曝光!
- 下一篇: 安卓手机挂载Linux,android