Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JMeter и OutOfMemory. Исследовательский доклад

1,214 views

Published on

Презентация Екатерины Карасаевой на SQA Days-16
14-15 ноября 2014, Санкт-Петербург, Россия
www.sqadays.com

Published in: Education
  • Be the first to comment

  • Be the first to like this

JMeter и OutOfMemory. Исследовательский доклад

  1. 1. JMeter и OutOfMemory Екатерина Карасаева NetCracker
  2. 2. Обо мне Экспертиза в нагрузочном тестировании Тестирую телеком-решения в NetCracker Skype — ekaterina.karasaeva
  3. 3. О чем будет доклад JMeter и последствия OutOfMemory Устройство памяти в JMeter (JVM HotSpot) Про хипдамп и подходы к нему «Best practices» в JMeter по работе с памятью
  4. 4. Apache JMeter Open-source Java приложение JMeter используется для нагрузочного тестирования Может создавать утечки потребления ресурсов машины
  5. 5. Последствия OutOfMemory Остановка всего нагрузочного теста Невалидность нагрузочного замера Невозможность сохранить изменения в JMeter скрипте
  6. 6. Устройство памяти Java Heap PermGen (Method Area) Young Generation Threads 1..N Old Generation Eden From To -Xms512m -Xmx512m -XX:MaxPermSize =128m N * -Xss1024k
  7. 7. Garbage Collector Eden From To Old Generation Young Generation  Minor GC чистит Young Generation  Full GC чистит Young Generation + Old Generation  Во время операций GC - треды JMeter останавливаются (момент «stop-the-world»)
  8. 8. Full GC in action
  9. 9. OutOfMemory in action
  10. 10. HeapDump  В JMeter.bat прописать флаг -XX:+HeapDumpOnOutOfMemoryError  При OutOfMemory будет файл java_pid*.hprof (хипдамп, heap profiler)  Открываем хипдамп с помощью Memory Analyzer Tool  Используем репорты для анализа:  Run Expert System Test -> Leak Suspects репорт  Dominator tree репорт  Histogram репорт
  11. 11. Leak Suspects репорт Dominator-tree Leak Suspects Histogram
  12. 12. Dominator Tree репорт Retained Heap Shallow Heap
  13. 13. Histogram репорт Чтобы узнать какие конкретные объекты съели память в этом классе – вызов контекстного меню – list objects – with incoming references
  14. 14. Histogram репорт
  15. 15. API JMeter http://jmeter.apache.org/api/index.html - список всех API в JMeter org.apache.jmeter.visualizers — Listeners, reports org.apache.jmeter.report - Listeners, reports org.apache.jmeter.assertions — Assertions org.apache.jmeter.extractor — Post-processors (Beanshell, regexp) org.apache.jmeter.functions — JMeter functions (Beanshell) org.apache.jmeter.modifiers — Pre-processors org.apache.jmeter.sampler — Debug Sampler, listeners, reports org.apache.jmeter.util — BeanShell
  16. 16. JMeter — to do and not to do Лиснеры: ставим галочку Errors only или выключаем полностью View Results in Table => возможность OutOfMemory View Results in Tree => возможность OutOfMemory Для логирования используйте Sample Data Writer Проверьте размер хипа в файле JMeter.bat set HEAP=-Xms2048m -Xmx2048m (по дефолту — 512 Мб) Тестируйте в non-gui режиме jmeter -n -t test.jmx -l test.jtl Для трекинга раскомментируйте строки в JMeter properties: #summariser.name=summary #summariser.interval=180 #summariser.out=true
  17. 17. JMeter — to do and not to do Пользуйтесь последней версией JMeter Используйте встроенные функции JMeter CSV легче XML jmeter.save.saveservice.output_format=csv При запуске большого количества тредов (>100), ставьте delay create threads until needed на Thread Group и не забывайте про Ramp-Up
  18. 18. Полезные ссылки 1. Как запустить JMeter в non-GUI режиме https://clck.ru/9MXHT (http://jmeter.apache.org) 2. Производительность JMeter в зависимости от версии https://clck.ru/9MXHX (http://wiki.apache.org) 3. How to monitor Java Garbage Collection https://clck.ru/9MXHD (http://www.cubrid.org) 4. Memory Analyzer Tool — инструмент для анализа хипдампов http://www.eclipse.org/mat/

×