Аптайм сервиса: формула расчета, примеры и онлайн-калькулятор
- 99,9% аптайма = 8,76 часа простоя в год, а 99,99% = 52,6 минуты.
- Формула аптайма: Up = (T_total - T_down) / T_total × 100%, где T_total — общее время.
- SLA в 99,9% обычно не включает плановые окна, если не оговорено иное.
- Для реального контроля нужен мониторинг с интервалом ≤ 1 минута.
- Что такое аптайм и почему это не просто процент
- Формула расчёта аптайма с примером в коде
- Пошаговый расчёт вручную: от данных к проценту
- Edge-cases: частичная недоступность, медленные ответы, плановые окна
- Частые ошибки при расчёте аптайма
- Как упростить контроль с помощью онлайн-инструмента
- Как интерпретировать аптайм для принятия решений
- Заключение
Что такое аптайм и почему это не просто процент
Аптайм (uptime) — доля времени, когда сервис доступен и отвечает на запросы. Измеряется в процентах за период (обычно месяц или год). Но главное — это не абстрактный показатель, а метрика, завязанная на SLA. Технически аптайм считают по формуле:
Где T_total — суммарное время за период (например, 30 дней = 720 часов = 43200 минут), T_down — суммарное время недоступности. Часто путают: 99% — это не "почти 100", а 3,65 дня простоя в год. Ниже таблица соответствия:
| Up, % | Простой/год | Простой/мес | Простой/нед |
|---|---|---|---|
| 99,9 | 8,76 ч | 43,8 мин | 10,1 мин |
| 99,99 | 52,6 мин | 4,4 мин | 1,0 мин |
| 99,999 | 5,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 аптайм (взвешенный по числу пользователей).
Пошаговый расчёт вручную: от данных к проценту
- Определите период. Например, июль 2026: 31 день = 744 часа = 44640 минут.
- Соберите все инциденты полной недоступности. Только когда сервис не отвечал. Плановые окна обычно исключают, если в SLA явно указано.
- Просуммируйте длительность. Допустим, за месяц было два инцидента: 15 мин и 45 мин. Итого 60 мин = 1 час.
- Подставьте в формулу: (744 - 1) / 744 × 100% = 99,8656%.
Кажется просто? Но есть нюансы: время реакции (пока инцидент зафиксирован) и время восстановления — считаются как простой. Если мониторинг проверяет раз в 5 минут, вы можете не заметить 4-минутный сбой — аптайм будет завышен.
Совет: используйте внешний мониторинг с частотой проверок ≤ 1 минута. Иначе вы считаете "видимый" аптайм, а не реальный.
Edge-cases: частичная недоступность, медленные ответы, плановые окна
Частичная недоступность. Если отказал один сервер из трёх, аптайм формально 100% (остальные работают). В SLA это часто трактуют как снижение производительности, а не простой. Некоторые контракты вводят эффективный аптайм — доля успешных запросов.
Медленные ответы. Если время отклика превышает SLA (например, >1 сек), это не простой, но может считаться деградацией. Отдельные метрики: latency, error rate.
Плановые окна. Обычно аптайм считается за вычетом согласованного времени обслуживания. Но если в контракте не указано — включаются. Всегда читайте мелкий шрифт.
Зоны доступности. В облачных провайдерах (AWS, Azure) аптайм считается отдельно для каждой зоны. Если приложение развёрнуто в одной зоне и она упала — это даунтайм. Если в трёх — нагрузка перераспределяется, простой может быть нулевым.
Частые ошибки при расчёте аптайма
- Игнорирование частичных сбоев. Если недоступна только часть 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.
Источники и нормативные документы
- Wikipedia: Uptime
- MDN Web Docs: Availability