docker / k8s 容器内运行 jmap/jstat提示 Unable to get pid of LinuxThreads manage thread
要在线上查看gc情况,进入k8s容器的bash,ps -ef 发现目标的java线程的进程号是1,运行jmap 报错:Unable to get pid of LinuxThreads manage thread查询了一下,原来是1是默认的启动进程,Dockerfile的ENTRYPOINT的执行默认就是 1。说是要用tini来启动。但是里边是内网,又找不到tini的离线包。几番查找。幡然醒悟,只
·
要在线上查看gc情况,进入k8s容器的bash,ps -ef 发现目标的java线程的进程号是1,运行jmap 报错:
Unable to get pid of LinuxThreads manage thread
查询了一下,原来是1是默认的启动进程,Dockerfile的ENTRYPOINT的执行默认就是 1。
说是要用tini来启动。但是里边是内网,又找不到tini的离线包。
几番查找。幡然醒悟,只要不要让那个java进程直接启动就好了。
修改Dockerfile
RUN echo "java -jar xxx.jar" > /run.sh && chmod 777 /run.sh
ENTRYPOINT ["/bin/sh","/run.sh"]
之后进入容器,ps -ef ,之前的java进程变成了6。
执行jmap 不再报错。nice。
更多推荐
已为社区贡献1条内容
所有评论(0)