Обложка канала

ServerAdmin.ru

12437 @srv_admin

Авторская информация о системном администрировании.

ServerAdmin.ru

3 года назад
Открыть в
​​У меня была серия публикаций про инструменты нагрузочного тестирования сайтов. Наиболее известные продукты из этой области я уже публиковал: ◽️Yandex.Tank ◽️ artillery.io ◽️ k6 ◽️ Locust ◽️ Taurus Все они представляют из себя скорее сервисы, для которых надо подготовить конфигурационный файл и сохранить куда-то результаты. А если хочется быстро и просто нагрузить какой-то ресурс в одну команду и оценить производительность, то можно воспользоваться Plow. Он представляет из себя одиночный бинарник на Go, который достаточно скачать и запустить. При этом есть и пакеты, и docker контейнер. За ходом нагрузки можно следить как в консоли, так и на веб странице, которую он запускает через свой встроенный веб сервер. У Plow не так много параметров. Основные это длительность теста (-d) или количество запросов (-n), интенсивность запросов или rps (--rate) и количество открытых соединений (-c). Тест будет выглядеть примерно вот так: # plow https://github.com -n 50 -c 2 --rate 10 Вы получите минимум информации. По сути, только самое основное — время ответа веб сервера по заданному урлу в различных вариациях. В том числе с разбивкой по персентилю. А также коды ответов веб сервера и ошибки, если они будут. Они скорее всего будут, если попробуете нагрузить какой-то сторонний, а не свой, веб ресурс. Сейчас почти у всех стоит защита от ддос, так что вас быстро забанят по ip. Plow умеет выводить результаты в виде json файла, так что его можно использовать для мониторинга отклика какого-то ресурса: # plow https://github.com -n 50 -c 2 --rate 10 --json --summary Такой вывод, отправив в Zabbix, можно очень просто через jsonpath распарсить и забрать, к примеру, 95-й персентиль для мониторинга и наблюдать за ним. Это будет более информативная метрика, нежели стандартные веб проверки. В них нельзя задать интенсивность запросов. А проверки одиночным запросом зачастую неинформативны, так как проседать отклик чаще всего начинает под нагрузкой. ⇨ Исходники #нагрузочное_тестирование