我的应用程序在 Tomcat 8 上的 REDHAT 6.0 上运行。当我的应用程序同时被 30 个用户使用时,有时内存使用率为 100%
服务器配置详情
Machine ec-2 M3 Medium on AWS
RAM : 4GB
DISK : 30GB
Processors : Intel Xeon E5-2670 v2 (Ivy Bridge) Processors
这正常吗?我应该怎么做才能解决它?
最佳答案
(没看帖子是3岁)
通过实验,当 JVM 配置为使用 ~75% 的 VM 内存(Xmx
参数)时,它会毫不犹豫地占用尽可能多的空间。
例如,我们的 t3.xlarge
(16GiB RAM)实例始终处于 RAM 利用率的 75%。
为了研究这一点,我们使用了 Java Melody
工具。
我发现即使我触发了 GC,Tomcat 的实际内存利用率也约为虚拟机最大内存的 30%。
htop
命令显示 JVM 使用了 75% 的内存。
我们没有更新配置,因为经过多次压力测试和高产图片后,没有出现任何问题(一年多以来......)。
如果需要,您可以搜索强制 JVM 释放一些 RAM 的 Linux SIGNAL。 (Linux 通过发送信号来监督每个正在运行的进程,迫使它们释放一些资源,因为其他人需要)
关于java - AWS Tomcat 服务器内存过高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33117914/