Size: a a a

QA — Load & Performance

2020 December 16

ВС

Вячеслав Смирнов... in QA — Load & Performance
Offtop.
Есть наблюдение, что при срабатывании полной сборки мусора может срабатывать и очистка Metaspace. Но это зависит от JVM. Поэтому, теоретически, при меньшем размере Xmx мы имеем более регулярные сборки мусора в Metaspace, и меньшую вероятность переполнения области памяти даже при лимите 256МБайт.
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
А по документации, область Metaspase не чистится, чистится по неизученным правилам.
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
И по умолчанию размер области памяти не ограничен. И такие ошибки не приводят к проблемам. Знаю одну систему, где такие ошибки есть, а система работает 24х7 и ничего
источник

S

Svetlana in QA — Load & Performance
Подскажите, плиз, я правильно понимаю что нагрузка заданная в тесте умножается на количество серверов? или она распределяется? То есть если я хочу получить 100 RPS то в тесте нужно сделать 100/2, где 2 кол-во серверов  нагрузки? и также с потоками
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Svetlana
Добрый вечер. Мне давали совет "Скорректировать Xmx под такое количество или сделать распределенный запуск теста." Изменила Xmx в jmeter.bat, сделала так:
set HEAP=-Xms1g -Xmx7g -XX:MaxMetaspaceSize=256m
На машине 16 Гигов памяти и Win10 64 bit
В качестве серверов использую машину, где изменила xmx, и другую рабочую станцию ( она же клиент)

В чем вопрос: теперь другой тест при распределенном запуске стал выдавать через 3 часа работы Uncaught Exception java.lang.OutOfMemoryError: Metaspace in thread

При этом замечаю, что в процессах память плавно росла и при обычном запуске. Наверно, как-то нужно чистить кучу?
Запускаю по 4 потока на каждй тип отчета в течение 5 часов
Корневую транзакцию вы не добавили. Стоит добавить, чтобы оценить длительность одного прохода.
Обратите внимание, что длительность сценария в данном случае переменная. И потенциально бесконечная за счет while.

Есть ли у While предельное количество итераций или предельное время ожидания ответа? Возможно, я и помогал с написанием цикла, помню такое. Хорошо, если будет предельное количество итераций.

Повторение Header Manager - утяжеляет сценарий. Достаточно добавить Header Manager в Thread Group или вообще в Test Plan (корень)

View Result Three в сценарии - лишний элемент. Он может замедлить тест и точно замедлит его при запуске в GUI-режиме.

Вы же запускаете тест в консольном режиме?
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Svetlana
Подскажите, плиз, я правильно понимаю что нагрузка заданная в тесте умножается на количество серверов? или она распределяется? То есть если я хочу получить 100 RPS то в тесте нужно сделать 100/2, где 2 кол-во серверов  нагрузки? и также с потоками
Да, верно
источник

S

Svetlana in QA — Load & Performance
в while есть ограничение
источник

S

Svetlana in QA — Load & Performance
да, запускаю в консольном. Для распеределенного запуска использую такую команду jmeter -n -t "скрипт.jmx" -r -l "путь к отчету\log.jtl"
источник

S

Svetlana in QA — Load & Performance
View Result - не всегда отключаю, буду стараться скрывать перед запуском
источник

S

Svetlana in QA — Load & Performance
В While по факту может крутиться по 600 итераций, предел задан большой - 50000
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Svetlana
View Result - не всегда отключаю, буду стараться скрывать перед запуском
Не проверял, что будет если его оставить в консольном режиме. Поэтому утверждать не буду. Но и исключать, что он копит ответы тоже не буду
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Svetlana
В While по факту может крутиться по 600 итераций, предел задан большой - 50000
Можно выделить процесс ожидания в отдельную катушку. Так как потенциальное время ожидания высокое.
источник

S

Svetlana in QA — Load & Performance
Summary тоже не нужно оставлять ? его можно будет получить из файла лога
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Svetlana
Summary тоже не нужно оставлять ? его можно будет получить из файла лога
Из файла лога можно будет получить. Да. А оставлять или нет - не изучал.
источник

ВС

Вячеслав Смирнов... in QA — Load & Performance
Тут невысокие интенсивности ведь. Если верно понял. Summary не замедлит такой сценарий так, чтобы это стало явным узким местом.
В более интенсивном сценарии точно стоит отключать все, что можно.
источник

S

Svetlana in QA — Load & Performance
да не интенсивно. спасибо!
источник

L

Leonids in QA — Load & Performance
Я вот, к примеру, вычищаю все все что можно убрать (все листенеры, все дебаг штуки) и потом не приходится думать а что же могло подкушать память да ресурсы.
источник

AG

Alex Grishutin in QA — Load & Performance
Степа Фомичев
У вас скорее всего где-то скачиваются файлы, не влезающие в хип. Чистить кучу в джаве руками нельзя
А почему бы и gc руками не форсануть? Мне в некоторых случая помогало
источник

СФ

Степа Фомичев... in QA — Load & Performance
Его не нужно форсить потому что) Это очень плохая практика
источник

СФ

Степа Фомичев... in QA — Load & Performance
gc гораздо лучше вас знает, когда ему следует работать
источник