java - AWS Tomcat 服务器内存过高

标签 java tomcat amazon-web-services server

我的应用程序在 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/

相关文章:

java - 如何处理对外部 REST 服务的请求并将响应返回给 Google Assistant?

cygwin - Sun JDK/在 Cygwin 上打开 JDK

java.lang.RuntimeException : Failure delivering result ResultInfo{who=null, request=131074,结果=-1,data=Intent {(有额外内容)}}到 Activity

java - 向 127.0.0.1 发送请求 :8084/(Tomcat) takes ~1000ms while to 127. 0.0.1/(Wamp) 需要 ~20ms

tomcat - 使用 Tomcat 更改 Liferay 7 中的图标

java - 如何以用户友好的文本以编程方式替换 Spring 的 NumberFormatException?

security - Tomcat 中协议(protocol)和端口的不正确组合是否是一个安全问题?

python - 如何在 amazon lambda 中传递来自 amazon connect 的属性?

javascript - 如何让一个简单的 localstack/localstack 与 node.js 一起工作

amazon-web-services - 具有多重身份验证的 AWS CodeCommit。继续获得致命的 : unable to access . 。请求的 URL 返回错误:403