docker镜像运行的java服务使用jmap/jstat分析jvm

在服务器上,如果是直接运行的java程序,可以使用jstat PID命令进行jvm的分析。但如果服务器上运行的是docker容器,则不能直接使用。需要进入到容器内部,再使用命令分析。

操作方法如下:

  1. 查看正在运行的容器id

    docker ps
    

    如下是服务器上正在运行的一个tomcat进程:在这里插入图片描述

  2. 进入容器内部

    docker exec -it pascloud_tomcat /bin/bash
    

    pascloud_tomcat是容器名称,也可以使用容器id

    查看到容器内正在运行的tomcat进程
    docker镜像运行的java服务使用jmap/jstat分析jvm_第1张图片

  3. 使用jmap,jstat
    在容器内部,根据查看到的java进程id,就可以使用jstat等工具进行jvm分析了。
    如使用jstat查看gc情况:

    jstat -gcutil 1 1000 5
    

    命令参数说明:
    1:容器内tomcat服务的进程id;
    1000:表示间隔一秒收集一次;
    5:表示收集5次;

    查询结果如下:
    docker镜像运行的java服务使用jmap/jstat分析jvm_第2张图片

你可能感兴趣的:(jvm,java,docker)