Java 使用G1 GC时,如何知道何时调整堆大小?

Java 使用G1 GC时,如何知道何时调整堆大小?,java,java-8,jvm,heap-size,g1gc,Java,Java 8,Jvm,Heap Size,G1gc,在Oracle的G1 GC文档中,G1 GC不建议调优JVM选项,因为吞吐量和延迟是稳定的 但是,我在文档中找不到服务器堆大小应该如何合适的页面。 服务器的用途和通信量各不相同。 它可以是一个简单的Restful API,也可以是一项耗时很长的任务。 因此,堆大小应根据服务器应用程序的不同而不同。 此外,如果堆大小不足,则会多次发生完全GC,并最终导致严重问题 如何确定适当的初始堆大小 什么时候应该增加堆大小 是否有方法和工具监控异常迹象 我会的 为您希望优化的工作负载创建基准 为此工作负载

在Oracle的G1 GC文档中,G1 GC不建议调优JVM选项,因为吞吐量和延迟是稳定的

但是,我在文档中找不到服务器堆大小应该如何合适的页面。 服务器的用途和通信量各不相同。 它可以是一个简单的Restful API,也可以是一项耗时很长的任务。 因此,堆大小应根据服务器应用程序的不同而不同。 此外,如果堆大小不足,则会多次发生完全GC,并最终导致严重问题

  • 如何确定适当的初始堆大小
  • 什么时候应该增加堆大小
  • 是否有方法和工具监控异常迹象
  • 我会的

    • 为您希望优化的工作负载创建基准
    • 为此工作负载的分配对应用程序进行性能调优。这会改变你所做的一切,所以先做吧。e、 g.使用飞行记录器
    • 尝试使用不同堆大小的应用程序,看看在什么情况下添加更多内存似乎没有什么不同
    • 如果您有时间,请尝试更多工作负载
    如何确定适当的初始堆大小

    应用程序几乎立即增长到什么大小?如果您使用较大的尺寸进行基准测试,它是否有帮助

    什么时候应该增加堆大小

    在确定应用程序没有内存泄漏并且经过合理调整后,服务器需要更多内存,或者如果有更多内存,则运行速度会更快

    是否有方法和工具监控异常迹象

    对于可以连续运行的工具,可以从
    jstat