Время обработки очереди: формула, пример и онлайн-калькулятор

💻 IT и кодОбновлено: 13 июля 2026 г.4 мин чтения
Задержки в обработке очереди могут стоить бизнесу клиентов и денег. Узнайте, как рассчитать время ожидания по формуле, посмотрите примеры с кодом и воспользуйтесь онлайн-калькулятором.
⚡ Коротко: главное
  • Среднее время обработки очереди (Wq) вычисляется по формуле Wq = Lq / λ, где Lq — средняя длина очереди, λ — интенсивность поступлений.
  • Для системы M/M/1 время ожидания в очереди Wq = λ / (μ·(μ-λ)), где μ — интенсивность обслуживания.
  • Коэффициент загрузки ρ = λ/μ не должен превышать 1, иначе очередь бесконечно растёт.
  • На 2026 год уточните актуальные нормы SLA для вашей отрасли на официальных сайтах.

Основная формула расчёта времени обработки очереди

Для расчёта времени обработки очереди в стационарном режиме используется модель M/M/1 (пуассоновский вход, экспоненциальное обслуживание, один сервер). Основные параметры:

  • λ (лямбда) — средняя интенсивность поступлений заявок в единицу времени (например, 5 клиентов в час);
  • μ (мю) — средняя интенсивность обслуживания (сколько заявок сервер может обработать за единицу времени);
  • ρ = λ / μ — коэффициент загрузки системы (должен быть меньше 1).

Среднее время ожидания в очереди Wq = λ / (μ·(μ-λ)).

Wq = λ / (μ · (μ - λ))

Среднее время в системе (ожидание + обслуживание) W = 1 / (μ - λ).

Пример: если λ = 5 заявок/ч, μ = 7 заявок/ч, то Wq = 5 / (7*(7-5)) = 5/14 ≈ 0,357 ч ≈ 21,4 минуты. Калькулятор времени обработки очереди сделает расчёт мгновенно.

Рабочий пример с числами: от входных данных до результата

Рассмотрим колл-центр, где в среднем поступает 12 звонков в час, а оператор обрабатывает 15 звонков в час. Шаг за шагом:

  1. Параметры: λ=12, μ=15. Проверяем ρ=12/15=0,8 (<1 — система стабильна).
  2. Среднее время ожидания в очереди: Wq = λ / (μ·(μ-λ)) = 12 / (15*(15-12)) = 12/45 = 0,2667 ч = 16 минут.
  3. Среднее время в системе: W = 1/(μ-λ) = 1/(15-12)=0,333 ч = 20 минут.
  4. Средняя длина очереди: Lq = λ·Wq = 12*0,2667 ≈ 3,2 заявки.

Если увеличить количество операторов (многоканальная система M/M/c), формула усложняется, но суть та же. Для быстрого расчёта используйте Калькулятор времени обработки очереди.

Модели очередей: M/M/1, M/M/c и M/G/1 — когда что применять

Выбор модели зависит от характера поступлений и обслуживания:

МодельОписаниеКогда применять
M/M/1Пуассоновский вход, экспоненциальное обслуживание, 1 серверКлассический пример: один кассир, простой колл-центр
M/M/cПуассоновский вход, экспоненциальное обслуживание, c серверовНесколько операторов, банковские отделения
M/G/1Пуассоновский вход, произвольное распределение времени обслуживанияКогда время обслуживания не экспоненциально (например, ремонтные работы)

Для модели M/G/1 время ожидания Wq вычисляется по формуле Поллачека-Хинчина.

Важно: при ρ>1 очередь растёт до бесконечности — система не справляется. Увеличивайте число серверов или скорость обслуживания.

Примеры кода на Python для расчёта очереди

Ниже — функция для расчёта средней длины очереди и времени ожидания для M/M/1 и M/M/c. Код можно использовать для своих расчётов.

import math

def mm1(lmbda, mu):
    rho = lmbda / mu
    if rho >= 1:
        return None, None, None  # система нестабильна
    Lq = rho**2 / (1 - rho)
    Wq = Lq / lmbda
    W = 1 / (mu - lmbda)
    return Lq, Wq, W

def mmc(lmbda, mu, c):
    rho = lmbda / (c * mu)
    if rho >= 1:
        return None, None, None
    sum_p = sum((c*rho)**n / math.factorial(n) for n in range(c))
    P0 = 1 / (sum_p + (c*rho)**c / (math.factorial(c)*(1-rho)))
    Lq = ( (c*rho)**c * rho ) / (math.factorial(c) * (1-rho)**2) * P0
    Wq = Lq / lmbda
    W = Wq + 1/mu
    return Lq, Wq, W

# Пример использования
lmbda, mu = 5, 7
Lq, Wq, W = mm1(lmbda, mu)
print(f"M/M/1: Lq={Lq:.2f}, Wq={Wq:.2f} ч, W={W:.2f} ч")

Для M/M/c: lmbda=10, mu=4, c=3 даст Lq≈1.04, Wq≈0.104 ч.

Этапы расчёта времени обработки очереди
  1. 1
    Определите λ и μ

    Замерьте интенсивность поступления и обслуживания в одной единице времени.

  2. 2
    Проверьте ρ = λ/μ

    Убедитесь, что ρ < 1, иначе система перегружена.

  3. 3
    Выберите модель

    M/M/1 для одного сервера, M/M/c для нескольких.

  4. 4
    Примените формулу

    Используйте Wq = λ / (μ·(μ-λ)) для M/M/1.

  5. 5
    Интерпретируйте результат

    Сравните Wq с целевым SLA.

Пошаговая инструкция от сбора данных до результата.

Частные случаи: очереди с приоритетами и ограниченной длиной

Очередь с приоритетами: заявки высокого приоритета обслуживаются раньше. Расчёт ведётся по формуле для невытесняющего приоритета: время ожидания для класса p: Wq_p = (1-ρ_p) * Wq_общее. Ограниченная очередь: если буфер конечен, часть заявок теряется. Вероятность потери P_loss = (1-ρ)*ρ^K / (1-ρ^(K+1)), где K — максимальная длина очереди. Замкнутые очереди: конечное число источников (например, рабочие станции). Для таких систем лучше применять симуляцию.

Подводный камень: если допустить, что время обслуживания константа (M/D/1), то в реальности оно редко бывает постоянным — это даёт заниженную оценку.

Чек-лист: не забудьте при расчёте очереди

0 из 8

Как отлаживать и проверять расчёты очереди

Частые ошибки:

  • Путать λ и μ — они должны быть в одной единице времени (заявки/час).
  • Игнорировать условие ρ<1 — иначе численные методы дадут бессмысленный результат.
  • Использовать M/M/1 для многоканальных систем — время занижается.

Проверка: для M/M/1 при ρ=0.5 длина очереди Lq=0.5, Wq=0.5/λ. Если λ=10, то Wq=0.05 ч (3 мин). Сравните с симуляцией в Excel или Калькуляторе времени обработки очереди.

Для отладки кода выводите все промежуточные величины: ρ, P0, Lq. При малых λ (например, 1 заявка/день) время ожидания может быть большим — проверяйте размерность.

Практический чек-лист для настройки системы очередей

Следуйте этим шагам, чтобы избежать типовых проблем:

  1. Соберите данные: замерьте λ (среднее число заявок) и μ (среднее время обслуживания).
  2. Рассчитайте ρ: если ρ>0.8, планируйте добавление серверов.
  3. Выберите модель: для одного сервера — M/M/1, для нескольких — M/M/c.
  4. Вычислите Wq: сравните с целевым SLA (например, не более 5 минут).
  5. Проверьте пиковую нагрузку: расчёт для максимальной λ с запасом 20%.
  6. Используйте симуляцию: для сложных систем (приоритеты, отказы) запустите имитацию на Python (модуль simpy).

Онлайн-инструменты для работы с временем и очередями

Помимо специализированных калькуляторов очередей, пригодятся универсальные конвертеры:

🧮 Посчитайте сами — инструменты по теме

🧭 Разделы по теме

Частые вопросы

Что такое λ и μ в теории очередей?

λ — средняя интенсивность поступления заявок (сколько заявок приходит в единицу времени), μ — средняя интенсивность обслуживания (сколько заявок может обработать сервер за единицу времени). Обычно измеряются в заявках/час или заявках/мин.

Что делать, если ρ больше 1?

Если коэффициент загрузки ρ = λ/μ > 1, очередь будет неограниченно расти. Необходимо снизить λ (уменьшить поток) или увеличить μ (ускорить обслуживание), либо добавить серверов.

Как рассчитать время ожидания для нескольких операторов?

Для M/M/c (c серверов) используйте формулу Эрланга. Среднее время ожидания Wq = Lq / λ, где Lq вычисляется через сумму вероятностей. Проще воспользоваться онлайн-калькулятором, например, на нашем сайте.

Какая модель подходит для call-центра?

Обычно используется M/M/c (многоканальная) или M/M/c с очередью. Если время разговора сильно варьируется, можно использовать M/G/c. Для точности рекомендуется симуляция.

Как учесть приоритеты в очереди?

Используйте систему с невытесняющим приоритетом. Время ожидания для каждого класса обратно пропорционально его приоритету. Формулы есть в литературе, но проще промоделировать.

Что такое формула Поллачека-Хинчина?

Это формула для средней длины очереди в системе M/G/1: Lq = (λ^2·σ^2 + ρ^2) / (2·(1-ρ)), где σ^2 — дисперсия времени обслуживания. Используется, когда время обслуживания не экспоненциально.

Как проверить правильность расчёта очереди?

Сделайте симуляцию в Excel или Python. Для M/M/1 можно проверить вручную при ρ=0.5: Lq=0.5, Wq=0.5/λ. Если результаты совпадают, расчёт верен.

Какие единицы времени лучше использовать в расчёте?

Приводите λ и μ к одной единице, например, заявки в час. Время ожидания получится в часах. Удобно перевести в минуты, умножив на 60.

Ещё по теме «IT и код»