为什么这些Tomcat服务器的JVM每小时执行一次完整的GC?
2022-09-01 13:19:30
我们运行许多Tomcat服务器,并观察到完全垃圾回收(GC)通常每小时执行一次,特别是当内存使用率相对较低时。确切的时间似乎是相对于应用程序服务器启动的时间而言的。如果服务器在 01:13 启动,则完整的 GC 在 02:13 完成,下一个完整的 GC 将在 03:13 发生。我无法找到任何文档来解释此行为。
这是一个问题,因为同时启动的服务器池往往会同时执行完整的 GC。如果 GC 延迟足够长,导致负载平衡器将服务器标记为关闭,则整个应用程序可以在一段时间内脱机。如果完整的GC可以分布在一段时间内,这样就不会有两台服务器同时执行完整的GC,那会更好,但我找不到任何方法来控制这种行为。
有没有人见过这种行为?有没有办法影响这些“常规”完整指导性案例何时发生?