Ris*_*ale 6 java jvm java-8 metaspace
我们正在将Web应用程序从Java 7迁移到Java8。我们已经定义了PermSizejvm param参数。
由于Java 8会忽略此参数,因此不再使用。元空间是Java 8中引入的,其默认大小随动态增长而不受限制(限于物理内存)。
我的问题是我是否需要为metaspacejvm参数确定Web应用程序的最佳值,或者使用default是一个好主意?
更新:
有关Web应用程序的更多信息:Web应用程序基于struts和spring框架。通常4k每分钟需要请求数。此应用程序部署在tomcat 8.5上,并且不承载任何其他Web应用程序。但是,同一虚拟机上运行着多个tomcat实例。当前-Xms和-Xmx值设置为1g。
您可以考虑以下多项内容:
初始元空间大小:在启动应用程序时,由于JVM必须调整元空间的大小,您看到负面和可衡量的影响吗?然后,您可能应该设置最小大小。仍然我会尽量避免这种情况,因为这会在应用程序增长时很容易被忘记。-XX:MetaspaceSize=<NNN>
最大元空间大小:当元空间增长到特定大小时,您是否希望应用程序失败?还是要限制服务器在这方面占用的资源?然后,您应该为元空间设置最大大小-XX:MaxMetaspaceSize=<NNN>
Metaspace Free Ratio:您是否动态加载许多不同的类?然后,您可以在元空间上定义一个自由比率,以便始终有足够的空间用于新类,并且在紧急情况下不需要调整大小。-XX:MinMetaspaceFreeRatio=<NNN>和-XX:MaxMetaspaceFreeRatio=<NNN>
我的建议是坚持默认设置,对其进行测试,仅在需要时做出反应。
| 归档时间: |
|
| 查看次数: |
6615 次 |
| 最近记录: |