记一次问题排查服务器内存问题
背景
工作中突然发现服务器的内存使用率特别高,这是不正常的,带着疑问,想一探究竟,下面是排查的过程。
第一步
首先使用top命令,free -h命令查看内存使用情况和cpu使用的情况,发现有个应用内存使用率异常的高,如下图,根据内存占比,找到对应行的pid,使用下面的命令根据pid找到自己的应用
ps-ef|grep #pid#
第二步
既然已经拿到了我们可以dump堆的文件出来进行分析了,这个命令执行,JVM会将整个heap的信息dump写入到一个文件,heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用,谨慎使用
命令如下: