linux内存耗尽分析
操作系统级
- 查看设备整体运行状况
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优化
posted on 2019-11-17 17:01 harry1989 阅读(1199) 评论(0) 编辑 收藏 举报