MicroPVR содержит метод API is_alive
, предназначенный для мониторинга загруженности сервера на основе общей оценки загруженности или score.
score рассчитывается как сумма оценок загрузки сети, сессий и средней загрузки вычислительных ресурсов CPU. Каждая из оценок рассчитывается как
(N/N_max) * 10.0
где
N - текущее значение параметра N_max - максимальное
Также, если максимальное значение любого из параметров установлено на -1, то его оценка всегда будет равна нулю.
is_alive
возвращает false при превышении хотя бы одной оценкой значения 8.0 (аналогично достижению параметром 80% от указанного максимального значения, например, более 800 Mbps исходящего сетевого потока при максимальном в 1000 Mbps) или при превышении score значения, указанного в параметре score-max-score.
Расчёт загруженности использует следующие параметры:
- max-net-load — загрузка исходящего сетевого потока в Mbit/sec.
- max-sessions — максимум из количества текущих входящих TCP-сессий и количества запросов на контент за N секунд, где N регулирется параметром
monitor-request-lifetime
. - max-cpu-la1 — значение средней загрузки вычислительных ресурсов, известное также как load average. Данный параметр следует отличать от загрузки процессора.
Узнать текущее значение load average можно командой uptime или через утилиту top. Оптимальное значение данного параметра может сильно отличаться в зависимости от типа нагрузки и количества вычислительных ядер.
Данные параметры оценивают общее состояние сервера, а не только ПО MicroPVR.