查看系統的I/O使用iostat命令而使用iotop能夠依據I/O統計信息排序,追蹤到詳細的進程


當看到I/O等待時間所占CPU時間的比重非常高的時候,首先要檢查的就是機器是否正在大量使用交換空間,由於硬盤操作的速度遠遠低於RAM。所以當系統內存耗盡,開始使用交換空間的時候。系統的性能會受到嚴重影響。

不論什么想要訪問硬盤的操作都要完畢與硬盤的I/O交換。所以,故障排除的第一步是看內存是否耗盡,假設是。先解決問題。假設還有大量可用的RAM,你須要明白那個進程占用了大部分I/O操作。

在你非常難弄明確究竟是哪個進程占用了大量I/O資源。使用iostat能夠找到是哪個分區運行大量I/O操作。

iostat的使用

最上面顯示的是1個cpu,64位系統,linux內核版本號

avg-cpu段:
%user: 在用戶級別執行所使用的CPU的百分比
%nice: nice操作所使用的CPU的百分比
%system: 在系統級別(kernel)執行所使用CPU的百分比
%iowait: CPU等待硬件I/O時,所占用CPU百分比
%idle: CPU空暇時間的百分比
Device段:

sda:設備名
tps: 每秒鍾發送到的I/O請求數.
Blk_read /s: 每秒讀取的數據量
Blk_wrtn/s: 每秒寫入的數據量.
Blk_read:   讀入的總的數據量
Blk_wrtn:  寫入的總的數據量

iostat各個參數說明:


-c 僅顯示CPU統計信息.與-d選項相互排斥.
 -d 僅顯示磁盤統計信息.與-c選項相互排斥.
 -k 以K為單位顯示每秒的磁盤請求數,默認單位塊.
 -p device | ALL
  與-x選項相互排斥,用於顯示塊設備及系統分區的統計信息.也能夠在-p后指定一個設備名,如:
  # iostat -p hda
  或顯示全部設備
  # iostat -p ALL
 -t    在輸出數據時,打印搜集數據的時間.
 -V    打印版本和幫助信息.
 -x    輸出擴展信息.

iostat后加一個數字

iostat 4 表示每隔4秒就刷新一次

iotop的使用



       --version 顯示版本然后退出
       -h, --help 顯示幫助然后退出
       -o, --only 僅僅顯示正在產生I/O的進程或線程。除了傳參。能夠在執行過程中按o生效。
       -b, --batch 非交互模式。一般用來記錄日志
       -n NUM, --iter=NUM 設置監測的次數,默認無限。在非交互模式下非常實用
       -d SEC, --delay=SEC 設置每次監測的間隔。默認1秒。接受非整形數據比如1.1
       -p PID, --pid=PID 指定監測的進程/線程
       -u USER, --user=USER 指定監測某個用戶產生的I/O
       -P, --processes 僅顯示進程,默認iotop顯示全部線程
       -a, --accumulated 顯示累積的I/O。而不是帶寬
       -k, --kilobytes 使用kB單位。而不是對人友好的單位。

在非交互模式下,腳本編程實用。


       -t, --time 加上時間戳。非交互非模式。


       -q, --quiet 禁止頭幾行,非交互模式。有三種指定方式。


              -q     僅僅在第一次監測時顯示列名
              -qq    永遠不顯示列名。
              -qqq   永遠不顯示I/O匯總。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM