我知道它比“你达到100%的使用率和服务下降”更复杂。我知道,当您接近100%的使用率时,垃圾收集会开始更积极地运行,例如,当您接近时,您会看到GC和CPU使用率的上升。
但随着时间的推移会发生什么?它会不会越来越多,直到我用完CPU?开始掉线?或者最终达到100%并完全崩溃?
有没有一个好方法可以找出我实际上离悬崖边缘有多近?
答案 0 :(得分:0)
这实际上取决于您的应用程序以及您正在运行的VM(例如,Oracle JVM,IBM JVM,OpenJDK JVM,lme4等)。在Oracle VM上,您可能会在VM退出之前看到以下一项或多项:
您可以通过启用详细的GC日志记录(请参阅Error java.lang.OutOfMemoryError: GC overhead limit exceeded)和/或通过JMX来监控应用程序内存使用情况以及GC正在执行的操作。
您还可以使用JVM API访问JMX正在发布的数据,请参阅GC logging flags