1. 程式人生 > >監控io效能,free命令,ps命令

監控io效能,free命令,ps命令

監控io效能

  • 有時候,cpu佔用率不高,但是負載卻很高
  • 這種情況可能是由於 io 效能不足引起的
  • 可以使用 iostat 命令檢視磁碟狀態
  • 在安裝sysstat包的時候,就已經包含了 iostat 命令
  • 可以直接使用 iostat 檢視磁碟狀態
  • 也可以使用 iostat 1 每秒輸出一次磁碟狀態

  • 一個重要的用法是 iostat -x
  • 引數 -x 可以檢視到一個重要的資料
  • 如上圖所示,使用x引數,可以檢視到 %util 這一列資料
  • cpu的使用時間裡面,有兩部分
  • 一部分是 處理程序計算的時間
  • 一部分是 等待 io 的時間
  • 某些時候要通過磁碟拿到資料才能進行計算處理
  • 或者要把一些資料進行儲存寫入磁碟
  • 磁碟讀寫的這個時間就是io等待時間
  • cpu需要讀取磁碟資料或者寫入磁碟資料才能進行下一步動作
  • 這個資料存取的時間就是cpu的io等待時間
  • %util 就是 io 等待時間 佔 cpu總時間的百分比
  • 如果磁碟的 %util 列的值很大,達到50%,60%
  • 說明磁碟io效能不足,導致io等待時間太長
  • 一般來說,%util 值大,磁碟讀寫量都會很大,因為頻繁讀取
  • 但是如果出現,%util值大,但是磁碟讀寫量卻不大
  • 說明這個磁碟可能出現了問題,也許需要更換磁碟了

  • 如果想知道哪一個程序在頻繁讀寫磁碟
  • 可以使用 iotop 命令
  • 這個命令不是預設安裝的,需要進行安裝
  • 使用 yum install -y iotop 進行安裝
  • 如圖,直接使用 iotop 命令就可以進入這個介面
  • 也是動態顯示資料的介面
  • 看 IO 列就可以知道程序的io佔比
  • 預設排序規律是 io 佔比高的程序在上面

free命令

  • free命令可以檢視記憶體使用情況
  • 使用 free 命令會出現上圖資料
  • 有三行資料,第一行是列名稱,第二行是記憶體資料,第三行是交換分割槽的資料
  • 主要看第二行記憶體資料
  • 第二行資料,第一列 total 是記憶體總大小,單位是kb
  • 如圖,還可以使用兩個引數,-m 或者 -h
  • 引數 m 的意思是,把資料的顯示單位變成 MB,原本是 kb 的
  • 引數 h 的意思是,在資料後面加上更容易閱讀的單位顯示
  • 可以看到,使用引數 h 之後,每個資料後面都有單位顯示了
  • 第二列資料used是 使用了多少記憶體
  • 第三列資料free是 剩餘多少記憶體
  • 但是有一個問題,就是 used + free 不等於 total
  • 這是因為 有一部分記憶體 被分配給了 buff/cache
  • buff/cache 是 緩衝/快取
  • 因為磁碟速度與cpu速度差距太大,所以中間需要記憶體做緩衝
  • 如上圖,資料從磁碟到cpu,經過記憶體的部分就是 cache 快取
  • 資料從cpu到磁碟,經過記憶體的部分就是 buffer 緩衝
  • 最後一列資料 available 的數值是 free的值 + 還沒有被使用的 buff/cache 的值
  • 所以記憶體真正可以使用的空間值是 available 的值,而不是 free 的值
  • 想看記憶體真正剩餘空間應該看 available

ps命令<