Re[3]: Как измерить пиковую нагрузку на API?
От: Anton Batenev Россия https://github.com/abbat
Дата: 01.09.23 22:50
Оценка: 91 (2)
Здравствуйте, Sergey J. A., Вы писали:

SJA> Но ведь это одно и тоже? Т.е. 1rps = 60rpm, и в чём измерять — вопрос удобства. Как скорость в км/ч или в м/с.

SJA> Хотя вот мой коллега говорит, что нельзя их приводить таким образом.
SJA> А твоё мнение?

Нет, в общем случае это разные единицы измерения из за малых масштабов неравномерности событий. Поскольку считается, что нормальный ответ веб-сервиса находится в пределах 300 ms, то на одном ядре CPU мы можем выполнить 3 rps. Дальше тупо умножаем на количество ядер.

Есть отличная книжка под названием "Проектируем время Психология восприятия времени в программном обеспечении", там эта тема немного раскрыта.

SJA> AB>Для времени обработки запроса за десятки миллисекунд это нагрузка 0 ("ноль rps") — т.е. настолько маленькая, что для сервиса на фоне потока запросов от других клиентов будет неразличима и ей можно пренебречь.

SJA> Хочется какую-то формулу или эвристику, где можно по времени запроса получить размер интервала.

Тут все зависит от того, что у тебя за веб-сервис. Среднестатистический веб-сервис в вакууме отвечает за 300 ms => ты измеряешь нагрузку в requests per second (см. отсылку к книге выше). Если стандартный ответ твоего веб-сервиса в пределах единиц ms (такое бывает например в HFT), то у тебя requests per 100/10/1 ms (но это сильно специфичные случаи и ты бы о них знал). Так что наиболее оптимальная единица для тебя — это rps.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.