Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

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

  • Loggen Sie sich ein, um Kommentare anzuzeigen.

  • Gehören Sie zu den Ersten, denen das gefällt!

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/

×