一、系統資源監控類命令?
1. CPU 資源排查?
top - 動態實時監控進程?
top [選項]
常用選項:
-d 2 # 每2秒刷新一次
-H # 顯示線程信息
-p 1234 # 僅監控PID為1234的進程
輸出解讀:?
- %Cpu(s):總 CPU 使用率,用戶態 + 內核態?
- KiB Mem:內存使用情況,重點關注used和free?
- 進程列表字段:PID(進程 ID)、USER(用戶)、%CPU(CPU 占用率)、%MEM(內存占用率)、COMMAND(進程名稱)?
htop - 增強版 top(需安裝)?
htop # 直接運行,支持鼠標操作
快捷鍵:
F2 # 配置顯示字段
F3 # 搜索進程
F9 # 發送信號給進程
vmstat - 虛擬內存統計?
vmstat 2 10 # 每2秒采樣一次,共10次
重點關注:
procs.r:運行隊列中的進程數(理想值<CPU核心數)
swap.si/so:swap空間交換速率(持續>0表示內存不足)
cpu.us/sy/id:用戶態/內核態/空閑CPU時間占比
2. 內存資源排查?
free - 內存使用情況?
free -h # 以人類可讀格式顯示
參數說明:
total:總內存
used:已使用內存(包含緩存)
free:空閑內存
buff/cache:緩沖區和緩存
available:實際可用內存(重點參考)
jmap(Java 專用) - 內存映射?
jmap -heap 1234 # 查看PID為1234的Java進程堆內存信息
jmap -histo:live 1234 | head -n 20 # 顯示存活對象直方圖(前20行)
3. 磁盤 IO 排查?
iostat - 磁盤輸入輸出統計?
iostat -x 2 # 顯示擴展信息,每2秒刷新
重點字段:
%util:磁盤利