Pod 里边内存占用过高问题排查
查了好多网上说的使用ENV的方式设置发现均不成功。
jvm参数部分一定要分开,否则导致容器无法启动!
ENTRYPOINT ["/opt/infosec/cssp/jdk1.8.0_202/bin/java","-jar","-Xms1024m", "-Xmx1024m","-XX:+PrintGCDetails", "-XX:+PrintGCTimeStamps", "-XX:+HeapDumpOnOutOfMemoryError", "-XX:HeapDumpPath=/opt/infosec/cssp", "-Xloggc:/opt/infosec/cssp","/opt/infosec/cssp/cssp-csm.jar"]
然后启动后进入容器内部使用:jmap -heap pid
查看参数是否生效
dockerfile 配置:
FROM java:8-alpine
ADD bdps-0.0.1-SNAPSHOT.jar bdps.jar
EXPOSE 8085
#设置启动时堆栈大小(无用)
#ENV JAVA_OPTS="-Xms400m -Xmx400m"
#这个启动会直接的导致java的进程为1,不能使用jmap jinfo等工具
#ENTRYPOINT ["java","-jar","/bdps.jar"]
ENTRYPOINT ["/bin/sh", "-c", "set -e && java -Xms400m -Xmx400m -jar /bdps.jar"]
之所以要用shell 启动是为了日后出现问题好使用jmap,jinfo分析问题。
一次线上内存暴涨问题排查
【死磕JVM】看完这篇我也会排查JVM内存过高了 就是玩儿!
JVM | CPU、内存过高排查
记一次生产环境Java服务synchronized死锁的处理过程
Dockerfile命令详解 语法解析 & JAVA的Dockerfile模版及JVM常见参数
线上内存溢出问题排查案例
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)