在 Oracle 的 G1 GC 文档中,G1 GC 不建议调整 JVM 选项,因为吞吐量和延迟是稳定的。
但是,我在文档中找不到关于服务器堆大小应该有多合适的页面。服务器的用途和流量会有所不同。它可以是一个简单的 Restful API,也可以是一个耗时的任务。因此,堆大小应根据服务器应用程序而有所不同。另外,如果堆大小不足,会发生多次Full GC,最终导致严重问题。
- 如何确定合适的初始堆大小?
- 什么时候应该增加堆大小?
- 是否有监测异常迹象的方法和工具?
在 Oracle 的 G1 GC 文档中,G1 GC 不建议调整 JVM 选项,因为吞吐量和延迟是稳定的。
但是,我在文档中找不到关于服务器堆大小应该有多合适的页面。服务器的用途和流量会有所不同。它可以是一个简单的 Restful API,也可以是一个耗时的任务。因此,堆大小应根据服务器应用程序而有所不同。另外,如果堆大小不足,会发生多次Full GC,最终导致严重问题。
我会
如何确定合适的初始堆大小?
应用程序几乎立即增长到什么大小?如果您使用更大的尺寸进行基准测试,它似乎有帮助吗?
什么时候应该增加堆大小?
当确定您的应用程序没有内存泄漏并且经过合理调整后,服务器需要更多内存或者如果它有更多内存会运行得更快。
是否有监测异常迹象的方法和工具?
对于可以连续运行的工具,您可以从jstat