咱們能夠用iostat 命令來監視系統輸入/輸出、設備負載,這經過觀察與它們的平均傳送速率相關的物理磁盤的活動時間html
來實現。iostat 命令生成的報告能夠用來更改系統配置,從而更好地平衡物理磁盤和適配器之間的輸入/輸出負載。當Linux系linux
統出現性能問題時,用iostat工具查看進程IO請求下發的數量、系統處理IO請求的耗時,進而分析進程與操做系統的交互過程ios
中IO方面是否存在瓶頸。express
安裝命令: yum install sysstat 併發
輸入命令後會自動安裝,依賴包沒有安裝時會提示,輸入「 y 」便可。工具
用法:iostat [ 選項 ] [ <時間間隔> [ 次數 ] ] 性能
參數 | 描述 |
-c | 顯示CPU使用狀況 |
-d | 顯示磁盤使用狀況 |
-N | 顯示磁盤陣列(LVM)信息 |
-n | 顯示NFS使用狀況 |
-k | 輸出結果以KB爲單位顯示 |
-m | 輸出結果以MB爲單位顯示 |
-t | 報告每秒向終端讀取/寫入的字符數和CPU信息 |
-V | 顯示版本信息 |
-x | 顯示詳細的統計信息 |
-p | 顯示磁盤和分區的狀況 |
由 iostat 命令生成的第一份報告提供了關於自從系統被引導後的時間統計信息,後繼的每一份報告都包含自上一次spa
報告以來的時間。第一行依次顯示系統版本信息、主機名、當前日期、CPU位數和CPU個數。操作系統
avg-cpu:整體cpu使用狀況統計信息,對於多核cpu,這裏爲全部cpu的平均值。重點關注iowait值,表示CPU用於3d
等待io請求的完成時間,各參數介紹以下:
%user:CPU處在用戶模式下的時間百分比
%nice:CPU處在帶NICE值的用戶模式下的時間百分比
%system:CPU處在系統模式下的時間百分比
%iowait:CPU等待輸入輸出完成時間的百分比
%steal:管理程序維護另外一個虛擬處理器時,虛擬CPU的無心識等待時間百分比
%idle:CPU空閒時間百分比
Device:各磁盤設備的IO統計信息,參數介紹以下:
tps:該設備每秒的傳輸次數(Indicate the number of transfers per second that were issued to the device)。
「一次傳輸」意思是「一次I/O請求」,多個邏輯請求可能會被合併爲「一次I/O請求」,「一次傳輸」請求的大小是未知的。
kB_read/s:每秒從設備(drive expressed)讀取的數據量
kB_wrtn/s:每秒向設備(drive expressed)寫入的數據量
kB_read:讀取的數據總量
kB_wrtn:寫入的數據總量
1. iostat -c 1 5 查看CPU狀態,指定時間間隔爲1秒,總共顯示5次。
若是%iowait的值太高,表示硬盤存在I/O瓶頸,%idle值高,表示CPU較空閒,若是%idle值高但系統響應
慢時,有多是CPU等待分配內存,此時應加大內存容量。%idle值若是持續低於10,那麼系統的CPU處理能
力相對較低,代表系統中最須要解決的資源是CPU。
2. iostat -d sda 查看指定磁盤信息
3. iostat -d -k 1 5 查看TPS和吞吐量信息
咱們可使用命令 iostat -x -d -k 1 5 來查看設備響應率(%util)和響應時間(await)。
rrqm/s:每秒這個設備相關的讀取請求有多少被Merge了(當系統調用須要讀取數據的時候,VFS將請求發到各個FS,
若是FS發現不一樣的讀取請求讀取的是相同Block的數據,FS會將這個請求合併Merge)
wrqm/s:每秒這個設備相關的寫入請求有多少被Merge了
r/s:每秒完成的讀次數(The number of read requests that were issued to the device per second)
w/s:每秒完成的寫次數(The number of write requests that were issued to the device per second)
rkB/s:每秒讀數據量(kB爲單位)
wkB/s:每秒寫數據量(kB爲單位)
avgrq-sz:平均每次IO操做的數據量(扇區數爲單位)
avgqu-sz:平均等待處理的IO請求隊列長度
await:每個IO請求的處理的平均時間(毫秒爲單位)。這裏能夠理解爲IO的響應時間,通常地系統IO響應時間
應該低於5ms,若是大於10ms就比較大了。
r_await:讀取請求的平均時間(毫秒爲單位)
w_await:寫入請求的平均時間(毫秒爲單位)
svctm:平均每次IO請求的處理時間(毫秒爲單位)
%util:在統計時間內全部處理IO時間,除以總共統計時間。例如,若是統計間隔1秒,該設備有0.8秒在處理IO,
而0.2秒閒置,那麼該設備的%util = 0.8/1 = 80%,因此該參數暗示了設備的繁忙程度。通常地,若是該參數是
100%表示設備已經接近滿負荷運行了(固然若是是多磁盤,即便%util是100%,由於磁盤的併發能力,因此磁
盤使用未必就到了瓶頸)。