在一个环境中运行Java微服务,您必须进行/决定一些配置。
我现在引用的配置是如何设置Xmx标志。
我认为,任何类型的实例,你选择,你必须留下一些RAM的系统和其他程序。
我有一个t2.medium(4gb)的AWS EB,我将Java微服务的Xmx标志配置为3gb。
加载后,提交的内存将达到3.0 GB以上,大约3.1 GB。有很多空闲的记忆。问题是AWS EB报告了97%的RAM,这意味着剩余的内存用于CloudWatch代理、NGINX、Linux和其他东西。
如果这些值达到或超过100%,那么Linux内核可能会因为RAM的高使用率而杀死某些东西。
问:您是否知道根据机器的总可用RAM选择Xmx标志值的最佳实践?你是通过做实验来决定的吗?
谢谢你
最佳答案
没有调整JVM的公式。它高度依赖于每个特定的机器、应用程序、应用服务器和最终用户的使用模式。建议您为Xmx和Xms设置相同的值。您应该尝试不同的值,并使用JProfiler或Visual VM分析JVM。This是Liferay JVM优化的一篇文章。希望它是有用的,能给你带来一些想法。