我正在将裸机Java应用程序(jar jdk8)移至Docker容器和DC / OS.我注意到docker上的模式异常,我们将-XMX设置为32 gig,并分配了36 gig docker容器.每隔几个小时左右,应用程序就会增加旧的gen mem分配,并且在尝试进行堆转储时,GC会陷入循环(最大CPU)中.
是否有任何优化或其他方法可以用来查看为什么在1-5秒的间隔内我们如此之快?使用Docker和JVM可能需要了解一些陷阱吗?
我们正在使用默认GC
最佳答案
仅供将来参考:
我们正在使用JDK 8,似乎Oracle最近才添加了一些使用Docker的实验性标志.我相信情况可能是当GC分配线程时,它不尊重cgroup的docker线程数.实验性标志似乎已经解决了我们的“脱轨问题”
https://blogs.oracle.com/java-platform-group/java-se-support-for-docker-cpu-and-memory-limits
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。