1. 整機
top
按1
查看單個 CPU 性能
uptime
系統性能命令精簡版 uptime
說明:
`load average` : 系統負載均衡
三個值分別代表:系統1分鐘,5分鐘,15分鐘系統的平均負載值
這三個值相加,除以3,再乘以100%的值,如果高於60%,證明系統的負擔壓力重
2. CPU
vmstat
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
每2秒採樣一次
mpstat -P ALL 2 5
每2秒採樣一次,共採樣5次
- 每個進程使用的CPU用量分解信息
pidstat -u 1 -p 進程編號
3. 內存
應用程序可用內存數 free
free -g
內存大小按照 GB 統計
free -m
內存大小按照 MB 統計
- 經驗
應用程序可用內存/系統物理內存
> 70% 內存充足
< 20% 內存不足,需要增加內存
在20% ~ 70%之間,內存基本夠用
查看額外
pidstat -p 進程號 -r 採樣間隔秒數
4. 硬盤
df
df -h
查看磁盤剩餘空間
5. 磁盤IO
iostat
iostat -xdk 2 3
磁盤塊設備分佈
-
rkB/s 每秒讀取數據量kB
-
wkB/s 每秒寫入數據量kB
-
svctm I/O請求的平均服務時間,單位毫秒
-
util 一秒中有百分幾的時間用於 I/O 操作,表示磁盤帶寬跑滿,需要優化程序或者增加磁盤
rkB/s、wkB/s根據系統應用不同,會有不同的值,但有規律可循:長期、超大數據讀寫,肯定不正常,需要優化程序讀寫
svctm 的值與 await 的值很接近,表示幾乎沒有 I/O 等待,磁盤性能好
如果 await 的值遠高於 svctm 的值,則表示 I/O 隊列等待太長,需要優化程序或者更換磁盤
查看額外
pidstat -d 採樣間隔數 -p 進程號
6. 網絡IO
ifstat
wget http://distfiles.macports.org/ifstat/ifstat-1.1.tar.gz
tar xzvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure
make
make install
查看命令
ifstat 1
各個網卡的 in、out
觀察網絡負載情況
程序網絡讀寫是否正常
- 程序網絡I/O優化
- 增加網絡I/O帶寬