Аптайм сервиса: формула расчета, примеры и онлайн-калькулятор

💻 IT и кодОбновлено: 13 июля 2026 г.5 мин чтения
Аптайм 99.9% звучит надёжно, но сколько минут простоя это даёт в год? Разбираем формулу, подводные камни и даём готовый калькулятор.
⚡ Коротко: главное
  • 99,9% аптайма = 8,76 часа простоя в год, а 99,99% = 52,6 минуты.
  • Формула аптайма: Up = (T_total - T_down) / T_total × 100%, где T_total — общее время.
  • SLA в 99,9% обычно не включает плановые окна, если не оговорено иное.
  • Для реального контроля нужен мониторинг с интервалом ≤ 1 минута.

Что такое аптайм и почему это не просто процент

Аптайм (uptime) — доля времени, когда сервис доступен и отвечает на запросы. Измеряется в процентах за период (обычно месяц или год). Но главное — это не абстрактный показатель, а метрика, завязанная на SLA. Технически аптайм считают по формуле:

Up = (T_total - T_down) / T_total × 100%

Где T_total — суммарное время за период (например, 30 дней = 720 часов = 43200 минут), T_down — суммарное время недоступности. Часто путают: 99% — это не "почти 100", а 3,65 дня простоя в год. Ниже таблица соответствия:

Up, %Простой/годПростой/месПростой/нед
99,98,76 ч43,8 мин10,1 мин
99,9952,6 мин4,4 мин1,0 мин
99,9995,26 мин26,3 сек6,1 сек
99%3,65 дн7,2 ч1,68 ч

Как видите, каждый дополнительный "девять" радикально снижает допустимый простой.

Формула расчёта аптайма с примером в коде

На практике аптайм считают за фиксированный период. Вот пример на Python — функция принимает список инцидентов (дата начала, дата конца) и период:

from datetime import datetime, timedelta

def uptime(incidents, period_start, period_end):
    total_sec = (period_end - period_start).total_seconds()
    down_sec = 0
    for start, end in incidents:
        # обрезаем инциденты за пределами периода
        start = max(start, period_start)
        end = min(end, period_end)
        if start < end:
            down_sec += (end - start).total_seconds()
    up_sec = total_sec - down_sec
    return up_sec / total_sec * 100

# Пример: месяц март 2026
period_start = datetime(2026, 3, 1)
period_end = datetime(2026, 4, 1)
incidents = [
    (datetime(2026, 3, 5, 10, 0), datetime(2026, 3, 5, 10, 5)),  # 5 мин
    (datetime(2026, 3, 20, 14, 30), datetime(2026, 3, 20, 15, 30)),  # 60 мин
]
print(f"{uptime(incidents, period_start, period_end):.3f}%")  # 99.850%

Подводные камни: если инцидент затрагивает только часть пользователей (например, только одно зона доступности), формально аптайм может быть 100%, но опыт ухудшился. Поэтому в SLA часто вводят weighted аптайм (взвешенный по числу пользователей).

Пошаговый расчёт вручную: от данных к проценту

  1. Определите период. Например, июль 2026: 31 день = 744 часа = 44640 минут.
  2. Соберите все инциденты полной недоступности. Только когда сервис не отвечал. Плановые окна обычно исключают, если в SLA явно указано.
  3. Просуммируйте длительность. Допустим, за месяц было два инцидента: 15 мин и 45 мин. Итого 60 мин = 1 час.
  4. Подставьте в формулу: (744 - 1) / 744 × 100% = 99,8656%.

Кажется просто? Но есть нюансы: время реакции (пока инцидент зафиксирован) и время восстановления — считаются как простой. Если мониторинг проверяет раз в 5 минут, вы можете не заметить 4-минутный сбой — аптайм будет завышен.

Совет: используйте внешний мониторинг с частотой проверок ≤ 1 минута. Иначе вы считаете "видимый" аптайм, а не реальный.

Edge-cases: частичная недоступность, медленные ответы, плановые окна

Частичная недоступность. Если отказал один сервер из трёх, аптайм формально 100% (остальные работают). В SLA это часто трактуют как снижение производительности, а не простой. Некоторые контракты вводят эффективный аптайм — доля успешных запросов.

Медленные ответы. Если время отклика превышает SLA (например, >1 сек), это не простой, но может считаться деградацией. Отдельные метрики: latency, error rate.

Плановые окна. Обычно аптайм считается за вычетом согласованного времени обслуживания. Но если в контракте не указано — включаются. Всегда читайте мелкий шрифт.

Зоны доступности. В облачных провайдерах (AWS, Azure) аптайм считается отдельно для каждой зоны. Если приложение развёрнуто в одной зоне и она упала — это даунтайм. Если в трёх — нагрузка перераспределяется, простой может быть нулевым.

Зоны аптайма: от отлично до неприемлемо
Идеально99.999% (5 мин/год)
Хорошо99.99% (52 мин/год)
Приемлемо99.9% (8.76 ч/год)
Плохо99% (3.65 дн/год)
Недопустимо<99%
Качество обслуживания в зависимости от доступности

Частые ошибки при расчёте аптайма

  • Игнорирование частичных сбоев. Если недоступна только часть API, но пользователь не может получить данные — это простой с точки зрения бизнеса. Считайте его отдельно.
  • Неправильный период. Путают календарный месяц и 30 дней. Если считать 28 февраля, то 99,9% — это ~40 минут, а не 43,8. Для SLA обычно берут календарный месяц.
  • Не учитывают время обнаружения. Инцидент начался в 23:59, а мониторинг заметил в 00:05 — пять минут потерь не учтены.
  • Округление. 99,95% красивее, чем 99,9456, но при сумме за год набегает разница. Округляйте до 2-3 знаков, но в расчёте используйте точные значения.

Чтобы избежать этих проблем, используйте автоматизированные средства мониторинга и Калькулятор аптайма сервиса, который учитывает все нюансы.

Чек-лист настройки мониторинга аптайма

0 из 7

Как упростить контроль с помощью онлайн-инструмента

Ручной расчёт аптайма — зло: легко ошибиться, сложно вести историю. Лучше довериться готовым решениям. Например, Калькулятор аптайма сервиса позволяет ввести даты и время инцидентов, а он сам вычислит процент за любой период. Поддерживает ввод в часах и минутах, рассчитывает сразу несколько метрик.

Важно: онлайн-калькулятор — это лишь вершина. Для полноценного мониторинга используйте системы вроде Prometheus, Grafana, Uptime Kuma. Они собирают данные в реальном времени и строят дашборды. Но для быстрой проверки или выставления счёта по SLA — калькулятор идеален.

Пример: ввёл два инцидента по 10 минут в июне 2026 (30 дней) → получил 99,95%. Если бы считал вручную, потратил 5 минут и мог ошибиться. Инструмент делает это за секунду.

Как интерпретировать аптайм для принятия решений

Аптайм 99,9% — это не повод успокаиваться. Для большинства B2C-сервисов пользователи ожидают 99,99% (52 минуты простоя в год). Для финансовых транзакций — 99,999% (5 минут). Если вы не дотягиваете, первое, что нужно сделать — улучшить архитектуру: добавить реплики, балансировку, автоматическое восстановление.

Также стоит различать измеренный аптайм (что показал мониторинг) и согласованный в SLA. Часто поставщик гарантирует 99,9%, а по факту даёт 99,95% — это хорошо, но юридически он выполнил обязательства. Клиент может требовать компенсацию только если простой превысил 0,1%.

Запомните: 99,9% — это нижняя граница. В 2026 году тренд на 99,99% для всех публичных сервисов. Не отставайте.

Заключение

Аптайм — простая метрика, но с подводными камнями. Главное — единообразно считать и фиксировать все инциденты. Используйте автоматизацию, избегайте ручного подсчёта. Регулярно сверяйте показатели с SLA и требуйте компенсации при нарушениях. Для быстрых проверок держите под рукой Калькулятор аптайма сервиса.

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

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

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

Как считать аптайм за год, если были плановые окна?

Обычно плановые окна исключают из расчёта, если это оговорено в SLA. Тогда T_total уменьшается на время планового обслуживания. Если не оговорено — простой считается полным.

Что такое аптайм 99.9% в минутах?

99.9% = 0.1% простоя. За сутки это 1.44 минуты, за месяц (30 дней) 43.2 минуты, за год 8.76 часа или 525.6 минут.

Как рассчитать аптайм по логам сервера?

Соберите все записи о недоступности (error 503, timeout), определите временные отрезки, просуммируйте длительность. Затем по формуле: (общее время - простой) / общее время * 100%.

Влияет ли время ответа 2 секунды на аптайм?

Нет, аптайм измеряет только доступность (сервер отвечает), а не скорость. Медленный ответ — это метрика производительности, а не аптайма.

Какая формула аптайма для нескольких серверов?

Если серверы работают параллельно, аптайм системы = 1 - (1 - up1)*(1 - up2)*... . Если последовательно (каскад) — аптайм = up1 * up2 * ... .

Какой аптайм считается хорошим для веб-сервиса?

Хороший — 99.99% (52 минуты простоя в год). Для критических сервисов — 99.999% (5 минут). Для новостного сайта достаточно 99.9%.

Как часто нужно проверять аптайм?

Идеально каждые 30-60 секунд. Если реже, вы можете пропустить короткие сбои и завысить статистику.

Почему мой аптайм 100%, но пользователи жалуются?

Возможно, сервер отвечает, но медленно или с ошибками на некоторых запросах. Аптайм не отражает производительность. Проверьте latency и error rate.

Источники и нормативные документы

  1. Wikipedia: Uptime
  2. MDN Web Docs: Availability

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