JMeter Master очень медленно до конца (3 минуты, затем 5 минут ???) - PullRequest
0 голосов
/ 02 марта 2019

В конце моих тестов jmeter я столкнулся со странным поведением.

Я использую Master-Slave с 4 подчиненными, работающими на 4 отдельных виртуальных машинах, размещенных в другом боксе.

Тест выполняется нормально в течение периода «Удержание», 3 минуты для этого теста.Но затем он просто сидит там около 5 минут, время от времени сообщая, что поступило несколько ответов, даже если все потоки завершили.

./jmeter.sh -n -t /root/wordpress32sites_url2.jmx -l csvfilename -e -o htmlfoldername -R jmeter01,jmeter02,jmeter03,jmeter04
Creating summariser <summary>
Created the tree successfully using /root/wordpress32sites_url2.jmx
Configuring remote engine: jmeter01
Configuring remote engine: jmeter02
Configuring remote engine: jmeter03
Configuring remote engine: jmeter04
Starting remote engines
Starting the test @ Fri Mar 01 17:25:07 PST 2019 (1551489907760)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary +  12305 in 00:00:18 =  695.3/s Avg:    85 Min:    23 Max:   560 Err:     0 (0.00%) Active: 320 Started: 288 Finished: 0
summary +  49400 in 00:00:30 = 1648.4/s Avg:   322 Min:    26 Max:  7698 Err:     0 (0.00%) Active: 640 Started: 608 Finished: 0
summary =  61705 in 00:00:48 = 1294.5/s Avg:   275 Min:    23 Max:  7698 Err:     0 (0.00%)
summary +  48300 in 00:00:30 = 1607.5/s Avg:   402 Min:    28 Max: 10509 Err:     0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 110005 in 00:01:18 = 1415.5/s Avg:   331 Min:    23 Max: 10509 Err:     0 (0.00%)
summary +  48200 in 00:00:30 = 1603.1/s Avg:   404 Min:    32 Max:  9567 Err:     0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 158205 in 00:01:48 = 1467.9/s Avg:   353 Min:    23 Max: 10509 Err:     0 (0.00%)
summary +  47100 in 00:00:30 = 1574.4/s Avg:   415 Min:    33 Max: 10351 Err:     0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 205305 in 00:02:18 = 1491.0/s Avg:   367 Min:    23 Max: 10509 Err:     0 (0.00%)
summary +  48400 in 00:00:30 = 1615.0/s Avg:   403 Min:    33 Max: 10830 Err:     0 (0.00%) Active: 640 Started: 608 Finished: 0
summary = 253705 in 00:02:48 = 1513.2/s Avg:   374 Min:    23 Max: 10830 Err:     0 (0.00%)
summary +  46500 in 00:00:30 = 1546.4/s Avg:   412 Min:    32 Max: 10453 Err:     0 (0.00%) Active: 324 Started: 608 Finished: 316
summary = 300205 in 00:03:18 = 1518.2/s Avg:   380 Min:    23 Max: 10830 Err:     0 (0.00%)
summary +   3717 in 00:05:01 =   12.3/s Avg:   384 Min:    29 Max:  8782 Err:     0 (0.00%) Active: 0 Started: 608 Finished: 640
summary = 303922 in 00:08:19 =  608.8/s Avg:   380 Min:    23 Max: 10830 Err:     0 (0.00%)
summary +     87 in 00:00:00 = 7909.1/s Avg:   473 Min:    36 Max:  5197 Err:     0 (0.00%) Active: 0 Started: 608 Finished: 640
summary = 304009 in 00:08:19 =  608.9/s Avg:   380 Min:    23 Max: 10830 Err:     0 (0.00%)
Tidying up remote @ Fri Mar 01 17:33:31 PST 2019 (1551490411593)
... end of run
Creating summariser <summary>

Рабы JMeter не сообщают ничего интересного:

./jmeter-server
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[10.1.1.28:21458,SSLRMIServerSocketFactory(host=jmeter09.ovirt.pb.lab/10.1.1.28, keyStoreLocation=rmi_keystore.jks, type=JKS, trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi),SSLRMIClientSocketFactory(keyStoreLocation=rmi_keystore.jks, type=JKS, trustStoreLocation=rmi_keystore.jks, type=JKS, alias=rmi)](local),objID:[-5880d2c8:169394dd3fb:-7fff, -3132663786122032135]]]
Starting the test on host jmeter09 @ Fri Mar 01 12:54:27 UTC 2019 (1551444867945)
Finished the test on host jmeter09 @ Fri Mar 01 13:02:52 UTC 2019 (1551445372516)

Если я прерву тест на Мастере, ведомые будут продолжать «проводить тест» в течение этих последних 5 минут (после того, как он должен был фактически пройти 3,5 минуты), прежде чем я смогу использовать их снова.

ЗдесьВот детали, которые я упомянул выше в файле JMX:

        <stringProp name="TargetLevel">5</stringProp>
        <stringProp name="RampUp">0.5</stringProp>
        <stringProp name="Steps">1</stringProp>
        <stringProp name="Hold">3</stringProp>

Я думаю, что это не связанное примечание, но: кроме вышеупомянутого, тест выполняется отлично, хотя он сообщает, что у меня больше «активных» потоков, чем«Запущено» - похоже, оно не влияет на тестирование и, по-видимому, изменяется во время RampUp (это на 0,5 ниже).0 Время разгона приводит к тому, что только 320 запустилось, а при разгоне 1 все отображается как запущенное.

1 Ответ

0 голосов
/ 05 марта 2019

Сначала убедитесь, что все узлы (клиент и серверы):

  1. работают точно в одной версии JMeter.
  2. Использует одну и ту же версию Java во всех системах.Использование разных версий Java может работать, но не рекомендуется.

Во-вторых, проверьте свойства отправителя сэмплера :

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

Режим отправки образцов по умолчанию (начиная с версии 2.9): StrippedBatch - удалить responseData из успешных примеров и использовать для отправки Batch senderих.
Отправитель Batch отправляет сохраненные сэмплы, когда число (num_sample_threshold) или время (time_threshold) превышает пороговое значение, после чего сэмплы отправляются синхронно.

Пороги могут быть настроены на сервере с использованием следующих свойств:

  • num_sample_threshold - количество сэмплов, по умолчанию 100.
  • time_threshold- порог времени, по умолчанию 60000 мс = 60 секунд.

Итак, проверьте значения этого свойства.

Другой способ масштабирования теста - запуск тестов JMeter в облачной службе .

...