#node.js #performance #curl #streaming #performance-testing
#node.js #Производительность #curl #потоковая передача #тестирование производительности
Вопрос:
Недавно я написал сервер потоковой передачи видео с помощью NodeJS. Я хочу проверить производительность потоковой передачи с помощью сценария виртуализации, например, я могу запустить тысячу curl
команд для извлечения видео и проверить загрузку процессора запущенным процессом nodejs. но я не знаю, как запустить curl параллельно для виртуализации того, что произошло, когда 1000 пользователей транслировали мои видео.
помогите мне, если у вас есть другое решение для этого. Я не знаю, как проверить производительность моего сервера для многих пользователей.
Комментарии:
1. Я бы посоветовал изучить
autocannon
, поскольку каждый поддельный пользователь должен открывать сокет для вашего сервера
Ответ №1:
Вы можете запустить 1000 одновременных команд curl, используя, например, GNU parallel, однако я не думаю, что это лучший способ провести надлежащий нагрузочный тест, потому что у вас не будет никаких показателей производительности, которые можно проанализировать и сопоставить
Также отправка 1000 запросов является хорошим примером теста на скачок, в то время как «классический» нагрузочный тест был бы:
- Начиная с 1 потока (виртуальный пользователь)
- Постепенное увеличение загрузки до 1000 (или любого другого ожидаемого количества пользователей вашего приложения)
- Удержание загрузки в течение определенного периода времени
- Постепенное снижение загрузки до 0
Таким образом, вы сможете соотнести возрастающую нагрузку с увеличением пропускной способности (количество запросов в секунду), время отклика, частоту ошибок, посмотреть, возвращается ли приложение в нормальное состояние при уменьшении нагрузки, есть ли утечки памяти и т.д.
Поэтому я бы рекомендовал использовать специальный инструмент нагрузочного тестирования, который предоставляет возможность определять гибкие сценарии рабочей нагрузки и выводит красивые таблицы и диаграммы, позволяющие выполнять анализ результатов тестирования