Tag: jcmd

JCMD的代码/内部部分包含哪些内容?

为基于JVM的服务标注docker容器的方法很棘手(众所周知)。 我很确定我们对容器的尺寸略微不足,并希望清除我在监控时看到的与特定jcmd(本机内存跟踪器)输出相关的一些问题。 问题: 是否由jcmd报告的“内部”包含直接字节缓冲区? 除了jcmd报告的“代码”之外还有什么代码缓存? 是否有一种很好的方法来限制jcmd报告的“代码”部分。 我阅读了https://docs.oracle.com/javase/8/embedded/develop-apps-platforms/codecache.htm,但这仅涵盖了代码缓存限制,建议保持JVM默认不变。 JCMD输出在这里。 直接字节缓冲区 JMX属性在这里。 一些背景细节: 设置: 基于Spring引导的应用程序 JVM选项: -server -Xms1792m -Xmx1792m -XX:MetaspaceSize = 128M – XX:MaxMetaspaceSize = 192M -XX:+ UseG1GC -XX:+ UseStringDeduplication – XX:MaxDirectMemorySize = 256m -XX:NativeMemoryTracking = detail Docker容器2500MiB在AWS / EC2中运行