最近业务服务器在早上并发时出现地区性无法响应问题,初步推断是内存爆掉,导致swap交换不过来了,为了寻找占用内存的怪兽,使用jvisualvm协助监控。

环境JDK1.8,在jdk下的bin目录提供了很多优秀的工具,例如:jvisualvm

然后在服务端启动jstatd。在当前目录下心间jstatd.all.policy文件

grant codebase "file:${java.home}/../lib/tools.jar" {  
   permission java.security.AllPermission;  
};

命令启动:

./jstatd -J-Djava.security.policy=jstatd.all.policy -J-Djava.rmi.server.hostname=192.168.1.233

然后本地使用jvisualvm连接吧:)
69eaf9d5-5de0-42ee-a938-fcd5fbf50c4f