K8S无法使用jmap和jinfo查看信息
Docker打包Java后台服务镜像,启动命令样式为:java -jar ****.jar在K8S中启动镜像时,启动的PID为1,此时无法通过jmap和jinfo查看JVM相关信息。
·
1 问题
Docker打包Java后台服务镜像,启动命令样式为:java -jar ****.jar
在K8S中启动镜像时,启动的PID为1,此时无法通过jmap和jinfo查看JVM相关信息。
配置如下:
# 环境
FROM williamyeh/java8:latest
# 管理者信息
MAINTAINER xindaqi "*******@qq.com"
# 本地文件挂载到容器
WORKDIR /home/xindaqi/project/tutorial
# 拷贝jar文件
COPY tutorial.jar /tutorial.jar
# 设置端口号
EXPOSE 9121
# 运行jar包
ENTRYPOINT ["java", "-jar", "/tutorial.jar", "&"]
2 测试
2.1 查看Pods
kubectl get pods
2.2 进入Pods
pods-name为查到的pods名称
kubectl exec -it pods-name -- /bin/bash
2.3 查看Java进程
jps -l
进程ID为1。
2.4 查看flags
jinfo -flags 1
没有权限查看PID=1的信息。
2.5 查看heap信息
jmap -heap 1
同样无法查看。
3 方案
3.1 通过jstat查看信息
jstat -gccapacity 1
jstat -gc 1
3.2 通过java -XX查看
java -XX:+PrintCommandLineFlags -version
更多推荐
已为社区贡献1条内容
所有评论(0)