監控io效能,free命令,ps命令
阿新 • • 發佈:2019-10-02
監控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