操作系統級
- 查看設備整體運行狀況
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優化
