Тестирование загрузки больших файлов - PullRequest
1 голос
/ 06 мая 2019

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

Я создал план тестирования с 1000 потоков и сэмплером HTTP Request.Я провел тест.Но все мои запросы были с ошибкой, как показано ниже:

2019-05-06 18:07:33,884 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-11
2019-05-06 18:07:33,884 ERROR o.a.j.JMeter: Uncaught exception: 
java.lang.OutOfMemoryError: Java heap space

Я погуглил и обнаружил, что увеличение максимального размера кучи решит проблему.Итак, я пришел к выводу, что JMeter загружает файл в оперативную память.Таким образом, если происходит две параллельные загрузки по 400 МБ, то будет использоваться 800 МБ ОЗУ.Но, очевидно, это не практично, так как я должен проверить 500 параллельных загрузок.

Я думаю, могу ли я сконфигурировать сэмплер HTTPRequest для сохранения загруженного контента на диск вместо хранения его в ОЗУ или просто его игнорирования (скачать и сразу выбросить).Это позволило бы мне протестировать 500 параллельных загрузок, чего я и хочу достичь.

Если кто-то знает, как это сделать, пожалуйста, помогите мне или дайте мне знать, если есть альтернативный подход.

Ответы [ 2 ]

1 голос
/ 07 мая 2019

Попробуйте создать распределенную систему Jmeter (настройка master-slave).Обратите внимание, что пространство кучи JAVA JMETER на каждом ведомом устройстве должно быть, например, более 6 ГБ (или более).Если у вас достаточно подчиненных для работы, отправка нагрузки будет в конечном итоге распределена между подчиненными, и это может решить вашу проблему.

Если проблема по-прежнему сохраняется, рассмотрите возможность переноса той же распределенной конфигурации JMETER в AWS, но это огромный шаг.

Просто попробуйте с первым пунктом, упомянутым.

Дополнительное примечание: Попробуйте также отключить создание дампа кучи.Чтобы удалить эту строку комментария DUMP = "- XX: + HeapDumpOnOutOfMemoryError" из файла JMeter.bat.

0 голосов
/ 08 мая 2019

Пройдя еще немного, я понял, что у JMeter такой опции нет, но есть и другие инструменты, которые выполняют ту же работу более эффективно. Вот некоторые из тех, которые я пробовал.

  1. WRK
  2. apache ab

и многие другие, перечисленные здесь .

...