OOM问题排查思路与常用指令

OOM问题排查思路与指令

实际生产项目中,不可避免的会遇到服务器内存不足引发告警的问题,很多时候可能就是因为部署的服务占用了太多的内存导致的。

当然,我们可以通过设置java的内存参数来控制内存的最大占用量,但是JVM内存不足了也是一个很头疼的问题。

如果服务部署的时候,允许外部内存检查等VM之类的工具远程连接还好,但是很多公司出于性能等种种原因,并不会开放远程连接的功能。

这样的话,就只能通过指令来定位问题了!

常用指令:

1.top指令:

类似windows环境的任务管理器,可以看到各个进程的使用情况。然后ctrl+m进行排序,找出内存消耗最高的几个进程。

根据pid,查询性能消耗比较高的是什么服务在运行l

ps -ef|grep 26810

2.jstat :虚拟机统计信息监视工具

jstat是用于监视虚拟机各种运行状态信息的命令行工具。可以显示进程中的类加载、内存、垃圾收集、即时编译等运行数据

常用到的如下:

1.jstat  -gc  ***   间隔时间     输出条数   (监视java堆状况,包括Eden区、2个Survivor区,老年代、永久代等的容量,已用空间,垃圾收集时间合计等信息)

2.jstat  -gcutil  ***   (监视内容与-gc类似,但输出主要关注已使用空间占用总空间的百分比)

3.jmap : java内存映射工具

jmap (Memory Map for Java) 命令用于生成堆转储快照(一般称为:heapdump或dump文件)

猜你喜欢

转载自blog.csdn.net/qq_37488998/article/details/112745115