arthas
arthas copied to clipboard
docker stats 与arthas监控查看的内容完全不一致
- 我已经在 issues 里搜索,没有重复的issue。
环境信息
arthas-boot.jar或者as.sh的版本: 3.7.1- Arthas 版本: 3.7.1
- 操作系统版本: Linux iZbp13tv4lhu40ys4zjjyxZ 5.10.134-15.2.al8.x86_64 #1 SMP Thu Sep 14 03:42:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
- 目标进程的JVM版本: openjdk11
- 执行
arthas-boot的版本: 3.7.1 - 我使用的arthas-spring-boot-starter 3.71
重现问题的步骤
- 使用arthas 网页版监控查看得知,jvm内存占用和线程情况如下
- 使用docker stats查看
java 运行命令
-server -XX:+UseContainerSupport -XX:InitialRAMPercentage=90.0 -XX:MaxRAMPercentage=90.0 -Xss512k -XX:+UseG1GC -Xlog:gc*:file=./gc/gc_%p_%t.log:time,tags,level:filecount=5,filesize=50m -XshowSettings:vm -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./gc/logs/heap-dump-%t.hprof -verbose:gc
Dockerfile
FROM openjdk:11.0.11-jdk-slim
MAINTAINER [email protected]
ENV TZ=Asia/Shanghai
RUN echo -e "${TZ}" > /etc/timezone && ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime
WORKDIR /server
VOLUME /server
# logs是存放普通日志,gc是存放gc日志
RUN mkdir -p config gc
COPY ./target/server.jar .
CMD sleep 5;java -Dfile.encoding=utf-8 -server ${JAVA_OPTS} -jar server.jar ${SPRING_OPTS}
期望的结果
通过arthas的 memory与docker stats 使用的内存基本相同(正负10%)
实际运行的结果
实际运行效果如图,arthas中memory与docker stats 差距太大。 arthas中计算得知不超过1.5G,但是在docker stats中要2.4G。