Связь со мной: @jlreap
Teletype: https://teletype.in/@lyonich
Post #42
171

Опять упал сервер? Опять стучишься в ssh, чтобы поднять его?
А догадаться проверить нагрузку заранее и расчитать все не смог, да? Та ладно, я тоже не смог, пару месяцев назад писал об этом в рассказе о запуске hodpass.
Одна из самых больших проблем - нагрузка сервера, которую я даже не знал, как проверить. Но сегодня на глаза попался инструмент, чтобы это сделать максимально эффективно.
Итак, ApacheBench!
Довольно простенький, но мощный инструмент для нагрузочного тестирования HTTP-серверов.
Функций у него немного (а ему в целом и не надо много):
- генерация кучи одинаковых HTTP запросов
- паралельная отправка этих запросов
- замеры различных метрик (скорость, задержки, 2xx, 4xx responses)
Вообщем-то разобраться в нем несложно, но вот провести эксперименты можно с удовольствием и наслаждением.
А как использовать?
Качаем тут наХуету Windows
Ubuntu:
Mac:
В терминале пишем
-n: общее число запросов
-c: количество TCP-соединений
-p: тело запроса
-H: заголовки
-k: поддержка Keep-Alive
Пример вывода ab:
К слову если телеграм бот на вебхуках, то его можно так тестить. По факту просто надо срать запросами на +- такой url:
Но тут есть главный минус: все запросы одинаковые, т.е. не получится сделать пользовательские сценарии.
Если нужны сценарии, то пользуйтесь Locust (мб про него пост тоже сделать?)
А догадаться проверить нагрузку заранее и расчитать все не смог, да? Та ладно, я тоже не смог, пару месяцев назад писал об этом в рассказе о запуске hodpass.
Одна из самых больших проблем - нагрузка сервера, которую я даже не знал, как проверить. Но сегодня на глаза попался инструмент, чтобы это сделать максимально эффективно.
Итак, ApacheBench!
Довольно простенький, но мощный инструмент для нагрузочного тестирования HTTP-серверов.
Функций у него немного (а ему в целом и не надо много):
- генерация кучи одинаковых HTTP запросов
- паралельная отправка этих запросов
- замеры различных метрик (скорость, задержки, 2xx, 4xx responses)
Вообщем-то разобраться в нем несложно, но вот провести эксперименты можно с удовольствием и наслаждением.
А как использовать?
Качаем тут на
Ubuntu:
sudo apt install apache2-utilsMac:
brew install httpdВ терминале пишем
ab https://example.com/api и подбираем нужные вам флаги:-n: общее число запросов
-c: количество TCP-соединений
-p: тело запроса
-H: заголовки
-k: поддержка Keep-Alive
Пример вывода ab:
Concurrency Level: 50
Time taken for tests: 10.123 seconds
Complete requests: 5000
Failed requests: 0
Requests per second: 493.9 [#/sec] (mean)
Time per request: 101.2 [ms] (mean)
Time per request: 2.02 [ms] (mean, across all concurrent requests)
К слову если телеграм бот на вебхуках, то его можно так тестить. По факту просто надо срать запросами на +- такой url:
https://your-domain.com/telegram/webhookНо тут есть главный минус: все запросы одинаковые, т.е. не получится сделать пользовательские сценарии.
Если нужны сценарии, то пользуйтесь Locust (мб про него пост тоже сделать?)
- ❤ 3
- ✍ 2
- 💊 1












