JMeter, почему ошибка% уменьшается после добавления постоянного таймера - PullRequest
0 голосов
/ 21 января 2020

Я использую JMeter для тестирования производительности. Я сохранил около 20 виртуальных пользователей и запустил несколько оставшихся URL-адресов POST в течение 30 минут. Я заметил, что есть некоторая ошибка% увеличилась. (скажем, ошибка% = 30%)

Итак, что я сделал, это : я добавил постоянный таймер (задержка резьбы), что-то около 2 секунд, теперь ошибка% значительно уменьшилась. ( допустимая ошибка% = 2%)

1) Могу ли я технически знать, почему ошибка% уменьшается после добавления постоянного таймера (задержки потока)?

2) Почему мы получаем ошибки, когда запросы постоянно попадают на сервер через JMeter? (когда постоянный таймер или задержка потока не добавлены)

3) Сколько времени занимает ЦП для создания каждого потока? Причину, по которой я спросил becoz, я не вижу ни одного примера / запроса в JMeter, например 530 000 (при работе с 15 виртуальными пользователями). Насколько мне известно, только 4 потока работают параллельно (если процессор имеет 4 ядра). Итак, как же мой ЦП может создать 530 000 запросов за 30 минут?

4) Сколько потоков может создать ЦП в 1 se c? (допустим, процессор имеет 4 ядра)

Ответы [ 2 ]

1 голос
/ 22 января 2020

Ниже приведены ответы на ваши вопросы.

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

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

Почему мы получаем ошибки, когда запросы постоянно попадают на сервер через JMeter?

Постоянное обращение к запросу с несколькими потоки могут вызвать ошибку в выводе. Это связано с тем, что когда jmeter создает запрос и до получения ответа мы создаем еще один поток, и процесс продолжается, что создает перегрузку сети и возвращает ошибку. Рекомендуется всегда создавать реалистичный c план производительности или нагрузочного тестирования, чтобы проанализировать реальное поведение системы.

Сколько времени занимает ЦП для создания каждого потока? Причину, по которой я спросил becoz, я не вижу ни одного примера / запроса в JMeter, например 530 000 (при работе с 15 виртуальными пользователями). Насколько мне известно, только 4 потока работают параллельно (если процессор имеет 4 ядра). Итак, как мой ЦП может создавать 530 000 запросов за 30 минут?

Это полностью зависит от ваших системных ресурсов и операций ввода-вывода. Если вы создали план, например, 10 000 потоков, и время нарастания равно 360 секундам. Это означает, что вы собираетесь загружать 27,77 запросов в секунду для конкретного запроса, который является пропускной способностью этого конкретного запроса. Теперь представьте, что если у вас есть 20 запросов в плане тестирования, то эти 10 000 потоков будут выполняться для всех 20 запросов, и общая пропускная способность составит 27,77 * 20 = 555,44 / с c в идеальном случае, и это полностью зависит от ресурсов вашего сервера, сеть, тестируемая архитектура приложения.

В 1 сек c сколько потоков может создать ЦП? (допустим, процессор имеет 4 ядра)

Поток - это просто процесс, который занимает память, и вы можете создать столько потоков, сколько захотите в своем тесте, но с указанными размером памяти и кучи. вашей системы. Как будто у вас 4 ГБ оперативной памяти на вашей машине, и вы пытаетесь создать 10000 потоков, чем ваша система перестает отвечать, потому что из 4 ГБ есть часть памяти, которая уже выделена для других процессов и приложений, установленных в вашей ОС. Вы всегда можете проверить и попробовать от малого до большого числа создать свой план тестирования и узнать, как этот план тестирования будет поддерживаться вашей машиной.

Надеюсь, вы получили ответы на свои вопросы.

1 голос
/ 21 января 2020
  1. Постоянный таймер добавляет «время обдумывания» между запросами, если вы добавляете таймер на том же уровне, что и все запросы (см. Правила определения JMeter для получения дополнительной информации) - это означает, что JMeter будет « "спите" в течение 2 секунд перед каждым сэмплером в области действия таймера. Учитывая, что у вас есть таймер, вы производите меньше нагрузки, поэтому у приложения больше шансов правильно отреагировать
  2. Скорее всего, приложение перегружено, т.е. вы обнаружили узкое место
  3. Это в основном зависит о том, что поток делает, размер запроса, ответ, количество pre / post процессоров. Просто убедитесь, что JMeter имеет достаточный запас для работы с ЦП, ОЗУ, сетью, диском, что JVM имеет достаточно места в куче и не выполняет сборку мусора слишком часто. Вы можете измерить все эти показатели с помощью встроенных инструментов мониторинга операционной системы или JMeter PerfMon Plugin
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...