生產環境服務器變慢,談談診斷思路和性能評估

🍀 整機:top

📌 uptime,系統性能命令的精簡版

🍀 CPU:vmstat

📌 查看 CPU(包含不限於)

在這裏插入圖片描述
vmstat -n 2 3
一般vmstat工具的使用是通過兩個數字參數來完成的,第一個參數是採樣的時間間隔數單位是秒,第二個參數是採樣的次數

  • procs
    • r:運行和等待CPU時間片的進程數,原則上1核的CPU的運行隊列不要超過2,整個系統的運行隊列不能超過總核數的2倍,否則代表系統壓力過大
    • b:等待資源的進程數,比如正在等待磁盤I/O、網絡I/O等
  • cpu
    • us:用戶進程消耗CPU時間百分比,us值高,用戶進程消耗CPU時間多,如果長期大於50%,優化程序;
    • sy:內核進程消耗的CPU時間百分比;
    • us + sy 參考值爲80%,如果 us + sy 大於80%,說明可能存在CPU不足
    • id:處於空閒的CPU百分比
    • wa:系統等待IO的CPU時間百分比
    • st:來自於一個虛擬機偷取的CPU時間的百分比
      在這裏插入圖片描述

📌 查看額外

⏳ 查看所有cpu核信息
  • mpstat -P ALL 2
⏳ 每個進程使用cpu的用量分解信息
  • pidstat -u 1 -p 進程編號

🍀 內存:free

📌 應用程序可用內存數

在這裏插入圖片描述

  • 經驗值
    • 應用程序可用內存/系統物理內存 > 70%內存充足
    • 應用程序可用內存/系統物理內存 < 20%內存不足,需要增加內存
    • 20% < 應用程序可用內存/系統物理內存 < 70%內存基本夠用

📌 查看額外

⏳ pidstat -p 進程號 -r 採樣間隔秒數

🍀 硬盤:df

📌 查看磁盤剩餘空間數

在這裏插入圖片描述

🍀 磁盤IO:iostat

📌 磁盤I/O性能評估

在這裏插入圖片描述
磁盤塊設備分佈
rkB/s 每秒讀取數據量kB
wkB/s每秒寫入數據量kB
svctm I/O請求的平均服務時間,單位毫秒;
await I/O請求的平均等待時間,單位毫秒;值越小,性能越好;
util 一秒鐘有百分幾的時間用於I/O操作。接近100%時,表示磁盤帶寬跑滿,需要優化程序或者增加磁盤;
rkB/swkB/s 根據系統應用不同會有不同的值,但有規律遵循:長期、超大數據讀寫,肯定不正常,需要優化程序讀取。
svctm的值與await的值很接近,表示幾乎沒有I/O等待,磁盤性能好,
如果 await 的值遠高於 svctm 的值,則表示 I/O 隊列等待太長,需要優化程序或更換更快磁盤。

📌 查看額外

⏳ pidstat -d 採樣間隔秒數 -p 進程號

🍀 網絡IO:ifstat

📌 默認本地沒有,下載 ifstat

在這裏插入圖片描述
wget http://gael.roualland.free.fr/ifstat/fistat-1.1.tar.gz
tar -zxvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure
make
make install

📌 查看網絡 IO

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章