Что такое нагрузка в системе и чем она измеряется
Что проверяют
Умеете ли вы переводить расплывчатое пожелание выдерживать нагрузку в проверяемое требование. Для аналитика это вопрос про формулировки нефункциональных требований, а не про названия инструментов мониторинга.
Как отвечать
Нагрузка это поток работы, приходящий в систему за единицу времени. Одним числом она не описывается, нужен профиль:
- интенсивность: запросов в секунду, операций в час, документов в сутки;
- смесь операций: чтение и запись стоят по-разному, отчёт тяжелее просмотра карточки;
- распределение во времени: обычный уровень, пик дня, сезонный пик вроде закрытия периода;
- объём данных: размер одного запроса и размер накопленной базы;
- одновременность: сколько сессий держится параллельно.
Метрики стоит разделить. Приходящая интенсивность и обслуженная пропускная способность это разные величины, и в перегрузке они расходятся: система принимает больше, чем успевает отдавать. Время отклика меряется перцентилями, p95 и p99, среднее прячет ровно те случаи, из-за которых приходят жалобы.
Связь величин даёт закон Литтла: среднее число запросов внутри системы равно интенсивности, умноженной на среднее время обслуживания. Отсюда понятно, почему очередь растёт лавиной, когда загрузка ресурса подходит к пределу.
Ресурсная сторона (процессор, память, диск, сеть, пул соединений к базе) это следствие, её описывают утилизацией и насыщением.
Готовое требование звучит так: в пиковый час система обслуживает такой-то поток операций заданной смеси, p95 времени отклика не выше заданного, доля ошибок не выше заданной.
Где спотыкаются
Называют нагрузкой количество пользователей. Число зарегистрированных не значит ничего, пока не сказано, сколько из них работает одновременно и что именно делает.
Меряют средние. Среднее время отклика и средняя загрузка процессора выглядят спокойно даже тогда, когда каждый десятый пользователь ждёт втрое дольше, потому что пользователь живёт в хвосте распределения.
Пишут требование без пика и без горизонта роста. Систему проектируют на сегодняшний обычный день, и первая же рассылка или отчётный период кладут её, хотя формально требование выполнено.