在服务器上,如果是直接运行的java程序,可以使用jstat PID命令进行jvm的分析。但如果服务器上运行的是docker容器,则不能直接使用。需要进入到容器内部,再使用命令分析。
操作方法如下:
-
查看正在运行的容器id
docker ps
如下是服务器上正在运行的一个tomcat进程:
-
进入容器内部
docker exec -it pascloud_tomcat /bin/bash
pascloud_tomcat是容器名称,也可以使用容器id
查看到容器内正在运行的tomcat进程
-
使用jmap,jstat
在容器内部,根据查看到的java进程id,就可以使用jstat等工具进行jvm分析了。
如使用jstat查看gc情况:jstat -gcutil 1 1000 5
命令参数说明:
1:容器内tomcat服务的进程id;
1000:表示间隔一秒收集一次;
5:表示收集5次;查询结果如下: