Мы запускаем много серверов Tomcat и наблюдаем, что полные сборки мусора (GC) часто выполняются на почасовой основе, особенно когда использование памяти относительно невелико. Точное время похоже на время запуска сервера приложений; если сервер запущен в 01:13, полный GC будет выполнен в 02:13, а следующий полный GC появится в 03:13. Я не смог найти документацию, чтобы объяснить это поведение.
Это проблема, потому что одновременно запускался пул серверов, и все они одновременно работают с полными GC. Если задержка GC достаточно длинная, чтобы заставить балансировщик нагрузки отмечать сервер как нисходящий, все приложение может отключиться в течение некоторого времени. Было бы лучше, если бы полные GC могли быть распределены в течение периода, поэтому никакие два сервера не выполняли полный GC одновременно, но я не могу найти способ контролировать это поведение.
Кто-нибудь еще видел это поведение? Есть ли способ влиять, когда происходят эти "регулярные" полные GC?