我们在 Tomcat 服务器上部署了一个Web应用程序。我们运行某些计划的作业,然后堆内存达到峰值并稳定下来,一切似乎都很好。但是,系统管理员抱怨内存使用率(Linux上的“ top”)随着计划的作业的增加而不断增加。堆内存和CPU内存之间有什么关联?可以通过任何JVM设置来控制它吗?我使用 JConsole 监视系统。 我通过JConsole强制进行垃圾收集,并且堆使用率下降了,但是 Linux 上的内存使用率仍然很高,并且从未减少。
有什么想法或建议会很有帮助吗?
可能观察到的是Java进程的虚拟大小而不是驻留集的大小?如果您的目标是小占用空间,则可能不希望在JVM堆参数中包含或任何最小大小, 而是-Xms将70%调整-XX:MaxHeapFreeRatio=为较小的数字以允许更大的堆收缩。
-Xms
-XX:MaxHeapFreeRatio=
同时,提供有关Linux内存从未减少的注释的更多详细信息?什么指标?