Нагрузка в эрлангах и загрузка серверов
Нагрузка в эрлангах равна интенсивности запросов, умноженной на среднее время обслуживания, и показывает, сколько серверов в среднем занято непрерывно. Если на десять серверов приходится семь эрланг, средняя загрузка составляет семьдесят процентов.
Калькулятор принимает интенсивность в запросах в секунду, минуту, час или сутки, а время обслуживания в миллисекундах, секундах или минутах. Единицы приводятся к секундам автоматически, поэтому не нужно пересчитывать нагрузку вручную.
Очередь M/M/c и формула Эрланга C
Модель предполагает случайный пуассоновский поток запросов, экспоненциальное время обслуживания и общую очередь на несколько одинаковых серверов. Формула Эрланга C даёт вероятность того, что новый запрос застанет все серверы занятыми и будет ждать.
Из этой вероятности получаются среднее ожидание, длина очереди, время в системе и доля запросов, ждущих дольше заданного порога. Эти показатели помогают оценить не только среднюю задержку, но и «хвост», который пользователи замечают раньше всего.
Почему загрузка выше 85 процентов опасна
Ожидание растёт нелинейно: при загрузке 70 процентов очередь почти не заметна, при 90 уже появляется ощутимая задержка, а при 98 растёт в десятки раз. Поэтому для интерактивных систем целевую загрузку держат в пределах 60–80 процентов.
Калькулятор позволяет задать предельную загрузку и использует её при подборе числа серверов и при поиске максимальной нагрузки. Вторая таблица показывает, что произойдёт при росте трафика на 50 и 100 процентов и при каком росте система окажется перегруженной.
Подбор числа серверов и максимальная нагрузка
В режиме подбора перебирается число серверов, начиная с минимально возможного, пока не выполнятся два условия: загрузка не выше предельной и заданная доля запросов укладывается в допустимое ожидание. Таблица рядом показывает соседние варианты и цену каждого дополнительного сервера.
Обратная задача определяет, какой поток выдержит имеющаяся группа серверов с теми же условиями. Результат выдаётся в запросах в секунду, минуту и час, что удобно для сравнения с графиками мониторинга и для планирования пиков распродаж.
Система с отказами: Эрланг B
Если очереди нет и запрос при занятых серверах теряется, как у телефонных линий, колл-центров без ожидания или пула соединений с жёстким лимитом, применяется формула Эрланга B. Она даёт вероятность отказа при заданном числе каналов.
Калькулятор находит число каналов, при котором вероятность отказа не превышает цель, и показывает обслуженную нагрузку и потерянные запросы в час. Помните о допущениях: реальный трафик приходит всплесками, а время обслуживания имеет тяжёлый хвост, поэтому расчёт оптимистичен.
Формула расчёта
a = λ·T; Wq = C(c,a) / (c·μ − λ); P(ждать > t) = C(c,a)·exp(−(c·μ − λ)·t)
Проверенные примеры
300 запросов в минуту, время обслуживания 800 мс, порог ожидания 1 с.
Нагрузка 4,00 Эрл, загрузка 66,67 %, ожидание в очереди 0,1139 с.
Время обслуживания 120 мс, 99 % запросов в пределах 0,5 с.
Нужно 8 серверов при загрузке 75,0 %.
40 вызовов в час по 6 минут, 5 линий.
Нагрузка 4,00 Эрл, вероятность отказа 19,91 %, для цели 2 % нужно 9 линий.
Как пользоваться онлайн-калькулятором
- Выберите задачу: анализ, подбор числа серверов, предельная нагрузка или система с отказами.
- Введите интенсивность запросов и среднее время обслуживания с единицами.
- Укажите число серверов и допустимое ожидание либо вероятность отказа.
- Для запаса включите дополнительные параметры: предельную загрузку и рост нагрузки.