Мы разрабатываем сервер и хотим запрограммировать в него контроль перегрузки.Что мы хотим сделать, это обнаружить, когда объем свободной кучи ниже определенного порога, и прекратить принимать новые данные, пока объем свободной памяти снова не увеличится.Наш первый подход использовал runtime.freeMemory.Это вызвало ложные срабатывания, так как объем свободной кучи опустился ниже порогового значения до того, как включился GC. Я нашел похожий вопрос на этом сайте, и ответом было использование MemoryPoolMXBean.Это выглядит как правильный путь, так как мы можем получить уведомление, когда свободная память ПОСЛЕ GC находится ниже границы.Но ... какой пул контролировать? Я не хочу, чтобы моя реализация зависела от типа GC, который JVM решила использовать.Одним из вариантов будет суммирование использования всех пулов динамической памяти и использование этого показателя. Это хорошее решение?
Спасибо, Дорон