10k одновременных соединений с Jmeter - PullRequest
0 голосов
/ 18 ноября 2018

У меня 32-гигабайтный процессор i7, работающий на Windows 10, и я пытаюсь сгенерировать одновременную нагрузку 10 кВу через jmeter.По какой-то причине я не могу выйти за пределы 1 КБ одновременно, и я получаю ошибку BindException или ошибку соединения с сокетом.Может ли кто-нибудь помочь мне с настройками для достижения такой нагрузки?Также, если кто-то заинтересован в фрилансе, я тоже с удовольствием это учту.Любая помощь будет полезна, так как я нахожусь на стадии производства и не могу загрузить этот вариант использования.Если у вас, ребята, есть какие-то другие инструменты, которые я могу эффективно использовать, это также поможет.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

1k одновременных звучит достаточно низко, чтобы это было что-то другое ... это также ограничение по умолчанию для количества открытых дескрипторов файлов во многих дистрибутивах Linux, так что, возможно, попробуйте поднять предел.

ulimit -Sn  

покажет вам ваш текущий лимит и

ulimit -Hn

покажет вам жесткое ограничение, которое вы можете пройти, прежде чем вам нужно будет касаться файлов конфигурации. Отредактируйте /etc/security/limits.conf как root и установите что-то вроде

yourusername soft nofile 50000
yourusername hard nofile 50000

yourusername - должно быть именем пользователя, который с вами запускает jmeter.

После этого вам, вероятно, придется перезапустить, чтобы изменения вступили в силу. Если не в Linux, я не знаю, как на самом деле это сделать, вам придется Google: D

Рекомендация: Как разработчик k6 , я могу предложить его в качестве альтернативного инструмента, но с ним будет сложно работать и 10K VU на одной машине. Каждый VU будет занимать некоторое количество памяти - например, по крайней мере 1-3 МБ, и это будет увеличиваться, чем больше ваш скрипт. Но с 32 ГБ вы все равно могли бы работать до 1-2 кВ и использовать http.batch для одновременных запросов, которые могут моделировать 10 КБ в зависимости от того, каков ваш фактический рабочий процесс.

Мне удалось запустить этапов с 300VU на одном 3770 процессоре i7 и 4 ГБ оперативной памяти в виртуальной машине, и получить 6,5 кбит / с на другую виртуальную машину на соседней физической машине (задержка составляет очень низкий), так что, возможно, 1,5-2 кВ с несколько более интересным сценарием и более высокой задержкой, поскольку это даст время golang для фактического запуска GC во время ожидания пакетов tcp. Я настоятельно рекомендую использовать discardResponseBodies , если они вам не нужны, и даже если вам нужны некоторые, чтобы получить ответ. Это очень помогает с потреблением памяти на каждый VU

0 голосов
/ 18 ноября 2018

Достигнуто ограничение на 1 компьютер, поэтому вы должны выполнять в распределенной среде несколько компьютеров.

Вы можете настроить распределенное тестирование JMeter в своей среде или использовать blazemeter или другой облачный инструмент для нагрузочного тестирования

мы можем использовать BlazeMeter, который предоставляет нам простой способ справиться с нашими нагрузочными тестами. Все, что нам нужно сделать, это загрузить наш файл JMX в BlazeMeter. Мы также можем загрузить консолидированный CSV-файл со всеми необходимыми данными, и BlazeMeter позаботится о его разбиении в зависимости от количества установленных двигателей.

В BlazeMeter мы можем установить количество пользователей или комбинацию двигателей (подчиненных систем) и потоков, которые мы хотим применить к нашим тестам. Мы также можем настроить дополнительные значения, например, несколько мест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...