1. 程式人生 > 其它 >Linux機器I/O分析

Linux機器I/O分析

有時候業務突增,機器的效能是需要我們特別關注的,分享下關於檢視linux的IO的工具

1、iostat

centos安裝方式
yum install sysstat

例子1:

iostat常用的選項-x,該選項將用於顯示和io相關的擴充套件資料。

iostat -x

關於 CPU 的指標,重點看%iowait 和 %idle 兩個指標。
%iowait:CPU 等待輸入輸出完成時間的百分比;
%idle:CPU 空閒時間百分比。

若%iowait 的值過高,則表示硬碟存在 I/O 瓶頸;若 %idle 值高,表示 CPU 較空閒。如果 %idle 值高但系統響應慢時,有可能是 CPU 等待分配記憶體,此時應加大記憶體容量。%idle 值如果持續低於 10,那麼系統的 CPU 處理能力相對較低,表明系統中最需要解決的資源是 CPU。

關於 Disk 指標,我們重點看 %utils、svctm、await 和 avgque-sz幾個指標。
avgqu-sz: 平均 I/O 佇列長度;
await: 平均每次裝置 I/O 操作的等待時間 (毫秒);
svctm: 平均每次裝置 I/O 操作的服務時間 (毫秒);
%util: 一秒中有百分之多少的時間用於 I/O 操作,即被 I/O 消耗的 CPU 百分比

若 %util 接近 100%,說明產生的 I/O 請求太多,I/O 系統已經滿負荷,該磁碟可能存在瓶頸;若 svctm 比較接近 await,說明 I/O 幾乎不需要等待;若 await 遠大於 svctm,說明 I/O 佇列太長,I/O 響應太慢,則需要進行必要優化;若 avgqu-sz 比較大,也表示有大量 IO 在等待。

例子2:

iostat -d -x -k 1
引數 -d 表示,顯示裝置(磁碟)使用狀態;
-k某些使用block為單位的列強制使用Kilobytes為單位;
1表示,資料顯示每隔1秒重新整理一次。

 

 2、iotop

centos安裝
yum install iotop -y

例子:

每隔十秒列印一次資訊,設定單位為KB/s,僅列印有活躍I/O的程序和執行緒資料
iotop -d 10 -o -k

3、dstat

centos安裝
yum insatll dstat

選項

-c #顯示CPU系統佔用,使用者佔用,空閒,等待,中斷,軟體中斷等資訊

-C #可按需分別顯示cpu狀態

-d #顯示磁碟讀寫資料大小

-n #顯示網路狀態

-N #指定要顯示的網絡卡

-l #顯示系統負載情況

-m #顯示記憶體使用情況

-g #顯示頁面使用情況

-p #顯示程序狀態

-s #顯示交換分割槽使用情況

-S #類似D/N

-r #I/O請求情況

-y #系統狀態

-–disk-util #顯示某一時間磁碟的忙碌狀況

-–freespace #顯示當前磁碟空間使用率

-–proc-count #顯示正在執行的程式數量

-–top-bio #指出塊I/O最大的程序

-–top-cpu #圖形化顯示CPU佔用最大的程序

-–top-io #顯示正常I/O最大的程序

-–top-mem #顯示佔用最多記憶體的程序

例子1:

顯示io、記憶體、cpu狀態

dstat -l -m -r -c  --top-io --top-mem --top-cpu

例子2:

檢視全部記憶體的狀態

dstat -g -l -m -s --top-mem