Как проверить, может ли мое java-приложение успешно обрабатывать нехватку памяти / ресурсов ЦП на сервере Tomcat? - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу проверить, как мое java-приложение будет вести себя на сервере Tomcat только с 512M RAM.Другими словами, мне нужно выполнить нагрузочное тестирование памяти, чтобы проверить, может ли мое приложение работать в такой ограниченной среде.

С помощью каких инструментов и как этого добиться?

Я слышал о программном обеспечении APMвключая префикс Stackify, New Relic APM, JMeter, JVisualVM, JVM Monitor, JBenchX - но я не уверен, что мне нужно использовать какой-либо из них для моей конкретной цели.

Та же проблема из-за очень ограниченных ресурсов ЦП,Я хотел бы протестировать свое приложение на настольном компьютере перед развертыванием в облаке Jelastic с ограниченной памятью / ЦП.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Лучший способ сделать это с виртуальной машиной.Вы можете выбрать свою технологию по своему выбору, но проще всего будет использовать Oracle VirtualBox, который свободно доступен для многих платформ.Просто установите минимальную ОС внутри ВМ, затем добавьте Java, ваше приложение и т. Д., А затем запустите нагрузочный тест для нее.

Работа в сети работает как обычно, поэтому вы можете использовать существующую среду нагрузочного тестирования ипросто укажите его на IP-адрес виртуальной машины.

Есть и другой способ сделать это, например, с помощью Docker или чего-то еще, но это поможет выполнить тест на дым.

Я бы не рекомендовал пытаться использовать сервер с большим объемом оперативной памяти, а затем пытаться «синтезировать» ситуацию с низким объемом оперативной памяти, не используя что-то вроде виртуальной машины (а BTW Docker использует виртуальные машины внутри).

0 голосов
/ 29 ноября 2018

Вы можете искусственно ограничить кучу JVM, выделенную для tomcat, изменив -Xmx аргумент командной строки , который определяет максимальное пространство кучи, которое будет использовать ваш сервер Tomcat.

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

Вы также можете изменить Сродство ЦП , чтобы привязать ваш сервер Tomcat к одному ядру ЦП (или ограниченному количеству ядер)


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

Что касается тестирования, я бы рекомендовал следующие методы тестирования производительности :

  • нагрузочное тестирование - приведение вашей системы к ожидаемой нагрузке допосмотрите, способен ли он справиться с этим
  • Тест на выдержку - в основном то же самое, что и нагрузочное тестирование, но в течение продолжительного времени (т. е. в течение ночи или выходных) - это позволит вам определить памятьутечки
  • Стресс-тестирование - начните с нагрузочного тестирования и постепенно увеличивайте нагрузку до тех пор, пока время отклика не превысит допустимый порог или не начнут появляться ошибки (независимо от того, что произойдет первым) - это позволит вамзнать границы вашего приложения / конфигурации и видение того, что и как может сломаться

Использование инструментов профилирования, таких как YourKit или JProfiler для тонкой настройки вашего кодабыло бы также полезно.

...