操作系统级
- 查看设备整体运行状况
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优化