我有一些docker swarm 容器在Azure上的Ubuntu 16.04.4 LTS实例上运行。容器正在运行 Java Spring Boot 和 Netflix OSS 应用程序,如 Eureka、Ribbon、Gateway 等应用程序。我观察到我的容器占用了大量内存,尽管服务只是 REST 端点。
我试图通过像下面这样传递 Java VM 参数来限制内存消耗,但这无济于事,即使之后大小也没有改变。
请注意下面我在这里使用的配置,
Java 版本:Java 8 高山
内核版本:4.15.0-1023-azure
操作系统:Ubuntu 16.04.4 LTS
操作系统类型:linux
架构:x86_64
CPU:32
总内存:125.9GiB
之后的内存占用 docker stats
Java VM 参数,
docker service create --name xxxxxx-service --replicas 1 --network overnet 127.0.0.1:5000/xxxxxx-service --env JAVA_OPTS="-Xms16m -Xmx32m -XX:MaxMetaspaceSize=48m -XX:CompressedClassSpaceSize=8m -Xss256k -Xmn8m -XX:InitialCodeCacheSize=4m -XX:ReservedCodeCacheSize=8m -XX:MaxDirectMemorySize=16m -XX:+UseCGroupMemoryLimitForHeap -XX:-ShrinkHeapInSteps -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=70"
我也尝试查看每个容器中的应用程序日志文件,但找不到任何与内存相关的错误。我还尝试限制容器资源。但这对我也不起作用。
有什么线索可以解决这个繁重的内存问题吗?
叮当猫咪
莫回无
翻阅古今
相关分类