Не знаю, если это пища для размышлений, но это то, что мы делаем:
Когда рендеринг нашей страницы превышает определенный приемлемый порог, мы помечаем сервер как «занятый», и все будущие новые сеансы отклоняются как «Сервер занят» - что позволяет людям с открытыми сеансами завершать работу, облегчая загрузить и освободить ресурсы для создания новых сеансов для возобновления работы
Мы делаем это, записывая среднюю продолжительность задачи каждую минуту и проверяя, превышает ли среднее значение за последние пять минут пороговое значение - затем устанавливаем флаг Занят. Флаг будет сброшен при следующем пересчете (это задача, запланированная на интервал в одну минуту), когда 5-минутное скользящее среднее снова упадет ниже порогового значения.