操作系統級
- 查看設備整體運行狀況
loadAverage
:1分鍾、5分鍾、15分鍾的cpu負載情況,滿載情況下為CPU核數*1%us
:用戶空間程序的cpu使用率%ss
:系統進程的cpu使用率%id
:空閑cpuH/shit+h
:顯示線程信息
- 內存分析
free -g
:查看整體內存使用情況,注意觀察如下幾個指標- 操作系統總共有多少內存
- 已經有多少內存被使用
buffer
、cached
里面有多少內存被使用-/+ buffers/cache
:-
表示從應用程序角度看系統被用掉了多少內存,+
表示從應用程序角度看系統還有多少內存可用- 應用程序使用了多少內存/應用程序還有多少內存可以使用
- 系統監控工具:
sysstat
- 安裝:
zypper in sysstat
(包括iostat
、mpstat
、sar
、sa
)
- 安裝:
- IO負載高判斷依據:
svctm > 15s
:平均每次IO操作的服務時間%util
接近100%
:一秒中有多少時間用於IO操作
進程分析
- 進程排序
ps -aux | sort -k4,4nr | awk '{sum += $1} END {print "sum=", sum}'
sort參數解釋:k后面根的數字表示第幾列,n表示數字,r表示逆序排列
- pidstat
pidstat -d -p {pid}
:對進程io進行采樣pidstat -u -p {pid}
:對進程cpu占用率進行采樣pidstat -r -p {pid}
:對進程內存占用率進行采樣jstack -l {pid}
:查看某個進程的所有線程,-l表示檢查鎖jstat
、jmap
等
性能測試
chaosblade
:阿里混沌工具memtester
:內存測試工具cpuburn
:cpu測試工具
參考
- linux下哪些進程在消耗我們的cache
- grep中使用"\d"匹配數字不成功的原因
- linux命令 --lsof命令 一切皆文件
- 參數代換命令xargs使用小結
- xargs命令教程 阮一峰
- JVM性能調優監控工具專題一:JVM自帶性能調優工具(jps,jstack,jmap,jhat,jstat,hprof)
- JVM內存:年輕代,老年代,永久代(jdk1.8永久移除,由元空間取代)
- 從實際案例聊聊Java應用的GC優化