SlideShare a Scribd company logo
1 of 18
JMeter и OutOfMemory 
Екатерина Карасаева 
NetCracker
Обо мне 
Экспертиза в нагрузочном тестировании 
Тестирую телеком-решения в NetCracker 
Skype — ekaterina.karasaeva
О чем будет доклад 
JMeter и последствия OutOfMemory 
Устройство памяти в JMeter (JVM HotSpot) 
Про хипдамп и подходы к нему 
«Best practices» в JMeter по работе с памятью
Apache JMeter 
Open-source Java приложение 
JMeter используется для 
нагрузочного тестирования 
Может создавать утечки 
потребления ресурсов машины
Последствия OutOfMemory 
Остановка всего нагрузочного теста 
Невалидность нагрузочного замера 
Невозможность сохранить изменения в JMeter скрипте
Устройство памяти Java 
Heap 
PermGen 
(Method 
Area) 
Young 
Generation 
Threads 
1..N 
Old 
Generation 
Eden From To 
-Xms512m 
-Xmx512m 
-XX:MaxPermSize 
=128m 
N * -Xss1024k
Garbage Collector 
Eden 
From To 
Old Generation 
Young 
Generation 
 Minor GC чистит Young Generation 
 Full GC чистит Young Generation + Old Generation 
 Во время операций GC - треды JMeter 
останавливаются (момент «stop-the-world»)
Full GC in action
OutOfMemory in action
HeapDump 
 В JMeter.bat прописать флаг 
-XX:+HeapDumpOnOutOfMemoryError 
 При OutOfMemory будет файл 
java_pid*.hprof (хипдамп, heap profiler) 
 Открываем хипдамп с помощью Memory Analyzer Tool 
 Используем репорты для анализа: 
 Run Expert System Test -> Leak Suspects репорт 
 Dominator tree репорт 
 Histogram репорт
Leak Suspects репорт 
Dominator-tree Leak Suspects 
Histogram
Dominator Tree репорт 
Retained 
Heap 
Shallow 
Heap
Histogram репорт 
Чтобы узнать 
какие конкретные 
объекты съели 
память в этом 
классе – 
вызов 
контекстного 
меню – 
list objects – 
with incoming 
references
Histogram репорт
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
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
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
Полезные ссылки 
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/

More Related Content

What's hot

Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)Noveo
 
Android - 11 - Multithreading
Android - 11 - MultithreadingAndroid - 11 - Multithreading
Android - 11 - MultithreadingNoveo
 
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Noveo
 
Multithreading in java past and actual
Multithreading in java past and actualMultithreading in java past and actual
Multithreading in java past and actualYevgen Levik
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practiceAlexey Lesovsky
 
Учим автотесты человеческому языку с помощью Allure и PyTest
Учим автотесты человеческому языку с помощью Allure и PyTestУчим автотесты человеческому языку с помощью Allure и PyTest
Учим автотесты человеческому языку с помощью Allure и PyTestRina Uzhevko
 
Распределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на JavaРаспределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на Javaaragozin
 
Сладкое будущее: Phalcon и Zephir
Сладкое будущее: Phalcon и ZephirСладкое будущее: Phalcon и Zephir
Сладкое будущее: Phalcon и ZephirCodeFest
 
Тестирование производительности систем мониторинга на платформе Microsoft SCO...
Тестирование производительности систем мониторинга на платформе Microsoft SCO...Тестирование производительности систем мониторинга на платформе Microsoft SCO...
Тестирование производительности систем мониторинга на платформе Microsoft SCO...SQALab
 
Daria Chernishova Test Automation Story
Daria Chernishova Test Automation StoryDaria Chernishova Test Automation Story
Daria Chernishova Test Automation Storyautomated-testing.info
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationAlexey Lesovsky
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ontico
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полнойОмские ИТ-субботники
 

What's hot (20)

Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
Многопоточность, работа с сетью (Lecture 12 – multithreading, network)
 
Android - 11 - Multithreading
Android - 11 - MultithreadingAndroid - 11 - Multithreading
Android - 11 - Multithreading
 
бегун
бегунбегун
бегун
 
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
Библиотеки для передачи данных (Lecture 13 – multithreading, network (libs))
 
Multithreading in java past and actual
Multithreading in java past and actualMultithreading in java past and actual
Multithreading in java past and actual
 
бегун
бегунбегун
бегун
 
Java 8. Thread pools
Java 8. Thread poolsJava 8. Thread pools
Java 8. Thread pools
 
Streaming replication in practice
Streaming replication in practiceStreaming replication in practice
Streaming replication in practice
 
Java threads - part 2
Java threads - part 2Java threads - part 2
Java threads - part 2
 
Учим автотесты человеческому языку с помощью Allure и PyTest
Учим автотесты человеческому языку с помощью Allure и PyTestУчим автотесты человеческому языку с помощью Allure и PyTest
Учим автотесты человеческому языку с помощью Allure и PyTest
 
Распределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на JavaРаспределённое нагрузочное тестирование на Java
Распределённое нагрузочное тестирование на Java
 
JavaDay'14
JavaDay'14JavaDay'14
JavaDay'14
 
Сладкое будущее: Phalcon и Zephir
Сладкое будущее: Phalcon и ZephirСладкое будущее: Phalcon и Zephir
Сладкое будущее: Phalcon и Zephir
 
Java threads - part 3
Java threads - part 3Java threads - part 3
Java threads - part 3
 
Тестирование производительности систем мониторинга на платформе Microsoft SCO...
Тестирование производительности систем мониторинга на платформе Microsoft SCO...Тестирование производительности систем мониторинга на платформе Microsoft SCO...
Тестирование производительности систем мониторинга на платформе Microsoft SCO...
 
Daria Chernishova Test Automation Story
Daria Chernishova Test Automation StoryDaria Chernishova Test Automation Story
Daria Chernishova Test Automation Story
 
PostgreSQL Streaming Replication
PostgreSQL Streaming ReplicationPostgreSQL Streaming Replication
PostgreSQL Streaming Replication
 
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
Ангелы и демоны многопоточного программирования / Алексей Федоров (Одноклассн...
 
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
2014-10-04 02 Владислав Безверхий. Mocha - покрой frontend по полной
 
Java threads - part 1
Java threads - part 1Java threads - part 1
Java threads - part 1
 

Viewers also liked

Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?OdessaQA
 
Построение системы нагрузочного тестирования
Построение системы нагрузочного тестированияПостроение системы нагрузочного тестирования
Построение системы нагрузочного тестированияSQALab
 
Коррелятор для JMeter
Коррелятор для JMeterКоррелятор для JMeter
Коррелятор для JMeterSQALab
 
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...SQALab
 
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Андрей Рохилько – J-meter внутри и снаружи Яндекс.ТанкаАндрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Андрей Рохилько – J-meter внутри и снаружи Яндекс.ТанкаYandex
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Positive Hack Days
 
Нагрузочное тестирование в облаке Windows Azure
Нагрузочное тестирование в облаке Windows AzureНагрузочное тестирование в облаке Windows Azure
Нагрузочное тестирование в облаке Windows AzureNatalia Efimtseva
 
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeter
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeterНагрузочное тестирование проектов на Drupal с использованием Apache JMeter
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeterPVasili
 
QA Lab: тестирование ПО. Эд Изотов: "Jmeter. Достучаться до небес".
QA Lab: тестирование ПО. Эд Изотов: "Jmeter. Достучаться до небес".QA Lab: тестирование ПО. Эд Изотов: "Jmeter. Достучаться до небес".
QA Lab: тестирование ПО. Эд Изотов: "Jmeter. Достучаться до небес".GeeksLab Odessa
 
Эд Изотов: "In God we trust the REST we test".
Эд Изотов: "In God we trust the REST we test".Эд Изотов: "In God we trust the REST we test".
Эд Изотов: "In God we trust the REST we test".Hub-IT-School
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениSQALab
 
Тестируем графику силами Art QА
Тестируем графику силами Art QАТестируем графику силами Art QА
Тестируем графику силами Art QАSQALab
 
Инструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективныеИнструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективныеSQALab
 
Ловушки восприятия в тестировании
Ловушки восприятия в тестированииЛовушки восприятия в тестировании
Ловушки восприятия в тестированииSQALab
 
Функциональное тестирование - тестируем функционально
Функциональное тестирование - тестируем функциональноФункциональное тестирование - тестируем функционально
Функциональное тестирование - тестируем функциональноSQALab
 
Коммуникации в тестировании
Коммуникации в тестированииКоммуникации в тестировании
Коммуникации в тестированииSQALab
 
Промышленные подходы к организации нагрузочного тестирования
Промышленные подходы к организации нагрузочного тестированияПромышленные подходы к организации нагрузочного тестирования
Промышленные подходы к организации нагрузочного тестированияSQALab
 
JMeter - Performance testing your webapp
JMeter - Performance testing your webappJMeter - Performance testing your webapp
JMeter - Performance testing your webappAmit Solanki
 
Использование метрик в процессе обеспечения качества сложных систем
Использование метрик в процессе обеспечения качества сложных системИспользование метрик в процессе обеспечения качества сложных систем
Использование метрик в процессе обеспечения качества сложных системSQALab
 

Viewers also liked (20)

Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?Нагрузочное тестирование. С чего начать?
Нагрузочное тестирование. С чего начать?
 
Построение системы нагрузочного тестирования
Построение системы нагрузочного тестированияПостроение системы нагрузочного тестирования
Построение системы нагрузочного тестирования
 
Коррелятор для JMeter
Коррелятор для JMeterКоррелятор для JMeter
Коррелятор для JMeter
 
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
Измеряем производительность веб приложения c помощью Selenium WebDriver и Bro...
 
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Андрей Рохилько – J-meter внутри и снаружи Яндекс.ТанкаАндрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
 
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
Автоматизация нагрузочного тестирования в связке JMeter + TeamСity + Grafana ...
 
Нагрузочное тестирование в облаке Windows Azure
Нагрузочное тестирование в облаке Windows AzureНагрузочное тестирование в облаке Windows Azure
Нагрузочное тестирование в облаке Windows Azure
 
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeter
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeterНагрузочное тестирование проектов на Drupal с использованием Apache JMeter
Нагрузочное тестирование проектов на Drupal с использованием Apache JMeter
 
QA Lab: тестирование ПО. Эд Изотов: "Jmeter. Достучаться до небес".
QA Lab: тестирование ПО. Эд Изотов: "Jmeter. Достучаться до небес".QA Lab: тестирование ПО. Эд Изотов: "Jmeter. Достучаться до небес".
QA Lab: тестирование ПО. Эд Изотов: "Jmeter. Достучаться до небес".
 
Efficient performance testing
Efficient performance testingEfficient performance testing
Efficient performance testing
 
Эд Изотов: "In God we trust the REST we test".
Эд Изотов: "In God we trust the REST we test".Эд Изотов: "In God we trust the REST we test".
Эд Изотов: "In God we trust the REST we test".
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времени
 
Тестируем графику силами Art QА
Тестируем графику силами Art QАТестируем графику силами Art QА
Тестируем графику силами Art QА
 
Инструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективныеИнструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективные
 
Ловушки восприятия в тестировании
Ловушки восприятия в тестированииЛовушки восприятия в тестировании
Ловушки восприятия в тестировании
 
Функциональное тестирование - тестируем функционально
Функциональное тестирование - тестируем функциональноФункциональное тестирование - тестируем функционально
Функциональное тестирование - тестируем функционально
 
Коммуникации в тестировании
Коммуникации в тестированииКоммуникации в тестировании
Коммуникации в тестировании
 
Промышленные подходы к организации нагрузочного тестирования
Промышленные подходы к организации нагрузочного тестированияПромышленные подходы к организации нагрузочного тестирования
Промышленные подходы к организации нагрузочного тестирования
 
JMeter - Performance testing your webapp
JMeter - Performance testing your webappJMeter - Performance testing your webapp
JMeter - Performance testing your webapp
 
Использование метрик в процессе обеспечения качества сложных систем
Использование метрик в процессе обеспечения качества сложных системИспользование метрик в процессе обеспечения качества сложных систем
Использование метрик в процессе обеспечения качества сложных систем
 

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

Monitoring and Load testing
Monitoring and Load testingMonitoring and Load testing
Monitoring and Load testingFedor Malyshkin
 
Илья Евлампиев - Grinder
Илья Евлампиев - GrinderИлья Евлампиев - Grinder
Илья Евлампиев - GrinderAlexey Chumagin
 
Анализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и GrafanaАнализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и GrafanaSQALab
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderSQALab
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1Michael Karpov
 
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехникиCodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехникиCodeFest
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesPlatonov Sergey
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
ZFConf 2010: Performance of Zend Framework Applications
ZFConf 2010: Performance of Zend Framework ApplicationsZFConf 2010: Performance of Zend Framework Applications
ZFConf 2010: Performance of Zend Framework ApplicationsZFConf Conference
 
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"QA Dnepropetrovsk Community (Ukraine)
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flashguestb0af15
 
анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияRuslan Shevchenko
 
Инструмент для нагрузочного тестирования Tsung (Артём Калантай)
Инструмент для нагрузочного тестирования Tsung (Артём Калантай)Инструмент для нагрузочного тестирования Tsung (Артём Калантай)
Инструмент для нагрузочного тестирования Tsung (Артём Калантай)Ontico
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиSQALab
 
Yeoman generator своими руками
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими рукамиchaykaborya
 

Similar to JMeter и OutOfMemory. Исследовательский доклад (20)

Monitoring and Load testing
Monitoring and Load testingMonitoring and Load testing
Monitoring and Load testing
 
Gen server
Gen serverGen server
Gen server
 
Continuous monitoring
Continuous monitoringContinuous monitoring
Continuous monitoring
 
Илья Евлампиев - Grinder
Илья Евлампиев - GrinderИлья Евлампиев - Grinder
Илья Евлампиев - Grinder
 
Анализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и GrafanaАнализируем результаты тестирования производительности с Graphite и Grafana
Анализируем результаты тестирования производительности с Graphite и Grafana
 
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The GrinderИлья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
Илья Евлампиев - Нагрузочное тестирование веб-приложений с помощью The Grinder
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
 
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехникиCodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
CodeFest 2011. Высоцкий С. — Crawljax. Четвертый закон робототехники
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templates
 
Оптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templatesОптимизация трассирования с использованием Expression templates
Оптимизация трассирования с использованием Expression templates
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
OSM to Garmin
OSM to GarminOSM to Garmin
OSM to Garmin
 
ZFConf 2010: Performance of Zend Framework Applications
ZFConf 2010: Performance of Zend Framework ApplicationsZFConf 2010: Performance of Zend Framework Applications
ZFConf 2010: Performance of Zend Framework Applications
 
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
Артем Розуменко - "Как и зачем разрабатывать собственный фреймворк?"
 
лекция 35
лекция 35лекция 35
лекция 35
 
Client Side Autotesting Flash
Client Side Autotesting FlashClient Side Autotesting Flash
Client Side Autotesting Flash
 
анализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестированияанализ кода: от проверки стиля до автоматического тестирования
анализ кода: от проверки стиля до автоматического тестирования
 
Инструмент для нагрузочного тестирования Tsung (Артём Калантай)
Инструмент для нагрузочного тестирования Tsung (Артём Калантай)Инструмент для нагрузочного тестирования Tsung (Артём Калантай)
Инструмент для нагрузочного тестирования Tsung (Артём Калантай)
 
Тестирование программных фильтров безопасности
Тестирование программных фильтров безопасностиТестирование программных фильтров безопасности
Тестирование программных фильтров безопасности
 
Yeoman generator своими руками
Yeoman generator своими рукамиYeoman generator своими руками
Yeoman generator своими руками
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

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

  • 1. JMeter и OutOfMemory Екатерина Карасаева NetCracker
  • 2. Обо мне Экспертиза в нагрузочном тестировании Тестирую телеком-решения в NetCracker Skype — ekaterina.karasaeva
  • 3. О чем будет доклад JMeter и последствия OutOfMemory Устройство памяти в JMeter (JVM HotSpot) Про хипдамп и подходы к нему «Best practices» в JMeter по работе с памятью
  • 4. Apache JMeter Open-source Java приложение JMeter используется для нагрузочного тестирования Может создавать утечки потребления ресурсов машины
  • 5. Последствия OutOfMemory Остановка всего нагрузочного теста Невалидность нагрузочного замера Невозможность сохранить изменения в JMeter скрипте
  • 6. Устройство памяти Java Heap PermGen (Method Area) Young Generation Threads 1..N Old Generation Eden From To -Xms512m -Xmx512m -XX:MaxPermSize =128m N * -Xss1024k
  • 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. Full GC in action
  • 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. Leak Suspects репорт Dominator-tree Leak Suspects Histogram
  • 12. Dominator Tree репорт Retained Heap Shallow Heap
  • 13. Histogram репорт Чтобы узнать какие конкретные объекты съели память в этом классе – вызов контекстного меню – list objects – with incoming references
  • 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. 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. 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. Полезные ссылки 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/