Size: a a a

QA — Load & Performance

2020 February 19

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Ещё было бы не плохо посмотреть сам сценарий
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Вдруг ты что то сделал что память забивает
источник

АС

Артем Сидорук in QA — Load & Performance
Покажу. Но уже с утра. Спасибо)
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Артем Сидорук
Сначала нагрузка растет судя по графане. Потом ошибка java.outofmemory
это не только из-за памяти может быть, из-за лимита дескрипторов:

ulimit -n
ulimit -p

вот из-за них
источник

O

Oleg in QA — Load & Performance
Оом не будет тогда
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Oleg
Оом не будет тогда
Вопрос с подвохом. А что будет?
источник

KY

Kirill Yurkov in QA — Load & Performance
рефьюзы коннектов под исчерпанию сокетов)
источник

jj

jagga jagga in QA — Load & Performance
Угу, сокеты открыть не сможет
источник

jj

jagga jagga in QA — Load & Performance
Вообще странно, что выжать на саранче легко получается выдать 1к, а на гатлинге фейл
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
Вот пример описания ошибки создания потока
"java.lang.OutOfMemoryError: Failed to create a thread"

из авторитетного источника:
https://www.ibm.com/support/pages/javalangoutofmemoryerror-while-creating-new-threads

Answer

Refer to the following(in order) to correct this error:

1. Linux has a maximum allowed process per user limit, we can check this using the "ulimit -u" command. If this value is low(default is 1024), then either make it unlimited or raise it to a high value, say 131072. This section is also highlighted as the "max user processes" section in "ulimit -a" output. Use the following command to set it to unlimited:
ulimit -u unlimited

2. Increase the amount of native memory available by lowering the size of the Java heap using the -Xmx option. The process address space not used by the Java heap is available for the native heap usage. Java heap is set in $TOP/bin/conf/service_mem_settings.ini file for the 6 services and as custom_java_options in $TOP/bin/conf/env_settings.ini file for the back end scripts.

3. ...
источник

ВС

Вячеслав Смирнов in QA — Load & Performance
На практике проверено, что если java.lang.Thread.startImpl(Native Method) не сможет создать поток, по одной из причин, то в тексте ошибки он напишет про память. А он может не создать поток, потому что исчерпан лимит дескрипторов.

И обратное верно, если исчерпать лимит дескрипторов, и запустить процесс, который создаёт активно потоки (нагрузочный тест), то будет получена ошибка
"java.lang.OutOfMemoryError: Failed to create a thread"
источник

O

Oleg in QA — Load & Performance
хм, возможно. у меня это выражалось в явной ошибке too many open files
источник

jj

jagga jagga in QA — Load & Performance
Цэ лимиты
источник
2020 February 20

VG

Viktor Ganeles in QA — Load & Performance
Артем Сидорук
Я это раньше python locust'ом делал. Он с этой же тачки легко делал постоянную нагпузку в 1000 rps.
А тут решил гатлинг попробывать.

И вот все поверить не могу, что скале нужно больше ресурсов, чем питону.
Пытаюсь понять что я не так делаю
А точно раньше 1к рпс было?
Ты это как проверял?
источник

АС

Артем Сидорук in QA — Load & Performance
Viktor Ganeles
А точно раньше 1к рпс было?
Ты это как проверял?
Локуст свой рпс прям в веб-морде пишет, и на графиках там же. Ну графики с сервера это подтвердили.

Но тут стоит уточнить, что локусту для этого нужно 5 slave-нод поднять (на одной машине)
источник

jj

jagga jagga in QA — Load & Performance
Мвахаха
источник

АС

Артем Сидорук in QA — Load & Performance
В продолжение вчерашней темы про производительность гатлинга:
1. Дело было не в бобине! 🙂. -  В файле logback.xml
была раскомментирована строка
<!--logger name="io.gatling.http.engine.response" level="TRACE" /-->

Соответственно, как только закомментил ее - нагрузка пошла лучше. Свою 1000 rps я получил.

Смущает, то что нагрузка как раз держалась в размере 1000 rps и ничуть не выше, несмотря на то, что я убрал ограничения "throtling"  - но думаю тут дело в том, что юзеры быстро отстреливаются. Разберусь)
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
Артем Сидорук
В продолжение вчерашней темы про производительность гатлинга:
1. Дело было не в бобине! 🙂. -  В файле logback.xml
была раскомментирована строка
<!--logger name="io.gatling.http.engine.response" level="TRACE" /-->

Соответственно, как только закомментил ее - нагрузка пошла лучше. Свою 1000 rps я получил.

Смущает, то что нагрузка как раз держалась в размере 1000 rps и ничуть не выше, несмотря на то, что я убрал ограничения "throtling"  - но думаю тут дело в том, что юзеры быстро отстреливаются. Разберусь)
Ты же поставил constantUserPerSec 1000
источник

ΙΤ

Ιωάννης Τσεκούρι in QA — Load & Performance
И у тебя один запрос всего
источник

АС

Артем Сидорук in QA — Load & Performance
Ну да)
источник