Linux 常用指令:
top:整機檢視
1,load average 如果三個值相加%3 高于0.6 cpu 負載重
2,CPU cpu占用
3,MEM 記憶體占用
(uptime 直接使用uptime 等于 top 的精簡版)
vmstat:檢視cpu
vmstat -n 2 3
- procs
- r: 運作和等待cpu時間片的程序數,原則上1核的cpu運作的隊列不要超過2,整個系統的運作隊列不能超過總核數的2倍。否則代表系統壓力過大
- 等待資源的程序數,比如正在等待磁盤I/O 網絡I/O等。
- cpu
- us: 使用者程序消耗cpu時間百分比,us 值高,使用者程序消耗的cpu時間多,長期大于百分之50 需優化程式。
- sy: 核心程序消耗的cpu時間百分比。
- id:cpu 空閑率
- 檢視cpu所有程序消耗: mpstat -P ALL 2
- 檢視所有對應程序消耗的cpu資訊:pidstat -u 1 -p 程序号
free:檢視記憶體占用
- free -m 檢視記憶體占用
- pidstat -p 程序号 -r 2 檢視程序的記憶體占用
df:檢視硬碟占用 df -h
iostat:檢視硬碟io
iostat -xd 2 3
ifstat:檢視網絡io
排查線上問題思路:
- 先用top指令找出cpu占比最高的程序
- ps -ef 或者 jps 定位
- 定位到具體線程或者代碼
- ps -mp 程序号 -o THREAD,tid,time
- 參數解釋:
- -m 顯示所有線程
- -p pid 程序使用cpu的時間
- -o 該參數後是使用者自定義的展示格式
- 将需要的線程id轉換為16進制格式(英文小寫)
- jstack 程序id | grep 線程id -A60 (A60 列印前60行)
linux如何檢視垃圾回收GC的情況,包括fullGC次數和耗時
jstat -gc PID 毫秒數 重新整理次數 jstat -gc 12880 5000 20
S0 — Heap上的 Survivor space 0 區已使用空間的百分比
S1 — Heap上的 Survivor space 1 區已使用空間的百分比
E — Heap上的 Eden space 區已使用空間的百分比
O — Heap上的 Old space 區已使用空間的百分比
P — Perm space 區已使用空間的百分比
YGC — 從應用程式啟動到采樣時發生 Young GC 的次數
YGCT– 從應用程式啟動到采樣時 Young GC 所用的時間(機關秒)
FGC — 從應用程式啟動到采樣時發生 Full GC 的次數
FGCT– 從應用程式啟動到采樣時 Full GC 所用的時間(機關秒)
GCT — 從應用程式啟動到采樣時用于垃圾回收的總時間(機關秒)