SlideShare a Scribd company logo
1 of 35
Выявление неполадок
          в java-приложениях




Павел Грушецкий
pavel_grushetzky@epam.com
Приложения, простые и …
Боремся с неисправностями


 Инструменты
  выявление проблем
  локализация


 Практики
  профилактика проблем
  упрощение диагностики
Инструменты - JConsole

 Входит в JDK 1.5+
 Приложение
   -Dcom.sun.management.jmxremote
   -Dcom.sun.management.jmxremote.port=9920
   -Dcom.sun.management.jmxremote.ssl=false
   -Dcom.sun.management.jmxremote.authenticate=false
   -Dcom.sun.management.jmxremote.local.only=false
   -Djava.rmi.server.hostname=your. hostname.com


 Клиент
   jconsole your. hostname.com:9920
Пример
А)
Пример
Б)
Пример
В)
Инструменты - VisualVM


              profiler     visual
      GUI                    GC
        jps
                       jhat
            jmap
                   jstat
Monitor
Visual GC
Sampler
Пример

История одной оптимизации
                                    обработка

                   Чтение
  Файл                              обработка       БД
                  построчно

                                    обработка

 Ожидаем многократное ускорение
   Процесс в основном ждёт ответа БД
   RAC отлично масштабируется
 Сделали – померяли – ускорения нет. Разберёмся?
1. Threads
2. Thread dump




Заблокированный поток пытается вернуть коннекцию в пул
2. Thread dump




А владелец блокировки валидирует новую коннекцию
2. Thread dump
И правда,




 Преступление раскрыто!
                          , казалось бы…
3. Здравый смысл


 А почему эти потоки открывают-закрывают коннекции?
 А что там у нас выше по стеку?



 А откуда?



 А если избавиться?
     - ускорение 10х+
4. Выводы


 Visualvm замечательно показывает происходящее
  «изнутри»
 Инструменты не заменяют здравый смысл, а дополняют

 Ищите основную причину, а не первую

 Современные технологии просты в использовании.
  Внести неочевидную проблему проще, чем когда-либо.
Eclipse MAT
Eclipse MAT
Практики



     CI
Аудит данных


 Цель – знать кто, что и когда изменял                когда
 На уровне структур данных:
  creator, create_timestamp, modifier, modify_timestamp

 А также история изменений             кто
   К примеру, {modifier, timestamp, property, old val, new val}

 Да, это требует места
                                                       что
Отладочное логирование

 Не System.out.println() !
 Разумные уровни логирования и ротация
 В паттерне                  Не забудьте синхронизировать время
                              серверов
   Дата/время
   Имя потока
   MDC – имя пользователя, корреляционная информация
 Конфигурация через JMX
 Время исполнения ключевых методов
   Обращение к внешним ресурсам – БД, веб-сервис, JMS
   Perf4j или самостоятельно (AOP)
Peer review
Рестарт…


 При нестабильной работе первым делом…

 … выдернуть шнур, выдавить стекло
    рестарт!
Рестарт…


 При нестабильной работе первым делом…

 … выдернуть шнур, выдавить стекло
    рестарт!
Данные
                 Рестарт          Анализ   Решение
диагностики




                Thread dump
                   (3 шт)

              Heap
                           Логи
              dump
Резюме


 Инструменты                  Практики
   visualvm                     Отладочное логирование
   jconsole                     Аудит данных
   eclipse MAT                  Peer review
   (jrockit mission control)    Своевременная диагностика
Спасибо!



 Ваши вопросы и комментарии

http://visualvm.java.net/
http://google.com/search?q=visualvm+over+ssh
http://google.com/search?q=jrockit+flight+recorder
http://perf4j.codehaus.org/
http://www.eclipse.org/mat/                        pavel_grushetzky@epam.com
Troubleshooting

More Related Content

What's hot

Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Ontico
 
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...Ontico
 
Kubernetes is not needed to 90 percents of the companies.rus
Kubernetes is not needed to 90 percents of the companies.rusKubernetes is not needed to 90 percents of the companies.rus
Kubernetes is not needed to 90 percents of the companies.rusIvan Glushkov
 
My Top Scrum WTF. Pecha Kucha
My Top Scrum WTF. Pecha KuchaMy Top Scrum WTF. Pecha Kucha
My Top Scrum WTF. Pecha KuchaAlexey Krivitsky
 
Профилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахПрофилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахAleksander Alekseev
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениSQALab
 
Alexey Lupan - Оценка времени на тестирование: неочевидные надводные камни
Alexey Lupan - Оценка времени на тестирование: неочевидные надводные камниAlexey Lupan - Оценка времени на тестирование: неочевидные надводные камни
Alexey Lupan - Оценка времени на тестирование: неочевидные надводные камниIevgenii Katsan
 
Alexander shigin slides
Alexander shigin slidesAlexander shigin slides
Alexander shigin slidesrit2010
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicVadim Tsesko
 
Скриптовой язык Groovy и его применение в рамках разработки ПО
Скриптовой язык Groovy и его применение в рамках разработки ПОСкриптовой язык Groovy и его применение в рамках разработки ПО
Скриптовой язык Groovy и его применение в рамках разработки ПОFedor Malyshkin
 
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...Ontico
 

What's hot (12)

Oracle Based Testing
Oracle Based TestingOracle Based Testing
Oracle Based Testing
 
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
 
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
Архитектура хранилища бинарных данных на Одноклассниках (Александр Христофоро...
 
Kubernetes is not needed to 90 percents of the companies.rus
Kubernetes is not needed to 90 percents of the companies.rusKubernetes is not needed to 90 percents of the companies.rus
Kubernetes is not needed to 90 percents of the companies.rus
 
My Top Scrum WTF. Pecha Kucha
My Top Scrum WTF. Pecha KuchaMy Top Scrum WTF. Pecha Kucha
My Top Scrum WTF. Pecha Kucha
 
Профилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахПрофилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системах
 
Контроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времениКонтроль качества и сопровождение программ в реальном времени
Контроль качества и сопровождение программ в реальном времени
 
Alexey Lupan - Оценка времени на тестирование: неочевидные надводные камни
Alexey Lupan - Оценка времени на тестирование: неочевидные надводные камниAlexey Lupan - Оценка времени на тестирование: неочевидные надводные камни
Alexey Lupan - Оценка времени на тестирование: неочевидные надводные камни
 
Alexander shigin slides
Alexander shigin slidesAlexander shigin slides
Alexander shigin slides
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/music
 
Скриптовой язык Groovy и его применение в рамках разработки ПО
Скриптовой язык Groovy и его применение в рамках разработки ПОСкриптовой язык Groovy и его применение в рамках разработки ПО
Скриптовой язык Groovy и его применение в рамках разработки ПО
 
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
 

Viewers also liked

Java for hipsters and rock stars
Java for hipsters and rock starsJava for hipsters and rock stars
Java for hipsters and rock starsPavel Grushetzky
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation OptimizationOneupweb
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareEmpowered Presentations
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingContent Marketing Institute
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 

Viewers also liked (9)

Java for hipsters and rock stars
Java for hipsters and rock starsJava for hipsters and rock stars
Java for hipsters and rock stars
 
Enterprise Java Puzzlers
Enterprise Java PuzzlersEnterprise Java Puzzlers
Enterprise Java Puzzlers
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 

Similar to Выявление неполадок в Java приложениях

Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...SQALab
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoFDmitry Buzdin
 
Dz Java Hi Load 0.4
Dz Java Hi Load 0.4Dz Java Hi Load 0.4
Dz Java Hi Load 0.4HighLoad2009
 
Григорий Сапунов (eclass)
Григорий Сапунов (eclass)Григорий Сапунов (eclass)
Григорий Сапунов (eclass)Edutainme
 
Computer Vision and Deep Learning
Computer Vision and Deep LearningComputer Vision and Deep Learning
Computer Vision and Deep LearningGrigory Sapunov
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализацияYandex
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав БахмутовCodeFest
 
Антон Наумович - Контроль качества и сопровождение в реальном времени
Антон Наумович - Контроль качества и сопровождение в реальном времениАнтон Наумович - Контроль качества и сопровождение в реальном времени
Антон Наумович - Контроль качества и сопровождение в реальном времениCOMAQA.BY
 
CodeFest 2014. Гайдаренко О. — Промисы и jQuery Промисы
CodeFest 2014. Гайдаренко О. — Промисы и jQuery ПромисыCodeFest 2014. Гайдаренко О. — Промисы и jQuery Промисы
CodeFest 2014. Гайдаренко О. — Промисы и jQuery ПромисыCodeFest
 
Node.js (Андрей Костенко)
Node.js   (Андрей Костенко)Node.js   (Андрей Костенко)
Node.js (Андрей Костенко)Ontico
 
Практика внедрения Scrum
Практика внедрения ScrumПрактика внедрения Scrum
Практика внедрения ScrumAndrey Bibichev
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoFAleksey Shipilev
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование системMedia Gorod
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NETlugnsk
 
Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)
Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)
Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)Ontico
 

Similar to Выявление неполадок в Java приложениях (20)

Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
Тестирование высоконагруженных облачных веб-сервисов в Amazon - подводные кам...
 
Java Platform Performance BoF
Java Platform Performance BoFJava Platform Performance BoF
Java Platform Performance BoF
 
Dz Java Hi Load 0.4
Dz Java Hi Load 0.4Dz Java Hi Load 0.4
Dz Java Hi Load 0.4
 
Григорий Сапунов (eclass)
Григорий Сапунов (eclass)Григорий Сапунов (eclass)
Григорий Сапунов (eclass)
 
Computer Vision and Deep Learning
Computer Vision and Deep LearningComputer Vision and Deep Learning
Computer Vision and Deep Learning
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализация
 
Вячеслав Бахмутов
Вячеслав БахмутовВячеслав Бахмутов
Вячеслав Бахмутов
 
Антон Наумович - Контроль качества и сопровождение в реальном времени
Антон Наумович - Контроль качества и сопровождение в реальном времениАнтон Наумович - Контроль качества и сопровождение в реальном времени
Антон Наумович - Контроль качества и сопровождение в реальном времени
 
Cache in web (Secon 2008)
Cache in web (Secon 2008)Cache in web (Secon 2008)
Cache in web (Secon 2008)
 
CodeFest 2014. Гайдаренко О. — Промисы и jQuery Промисы
CodeFest 2014. Гайдаренко О. — Промисы и jQuery ПромисыCodeFest 2014. Гайдаренко О. — Промисы и jQuery Промисы
CodeFest 2014. Гайдаренко О. — Промисы и jQuery Промисы
 
Node.js (Андрей Костенко)
Node.js   (Андрей Костенко)Node.js   (Андрей Костенко)
Node.js (Андрей Костенко)
 
Практика внедрения Scrum
Практика внедрения ScrumПрактика внедрения Scrum
Практика внедрения Scrum
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
Java Performance
Java PerformanceJava Performance
Java Performance
 
Быстрое масштабирование систем
Быстрое масштабирование системБыстрое масштабирование систем
Быстрое масштабирование систем
 
Opensource на .NET
Opensource на .NETOpensource на .NET
Opensource на .NET
 
Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)
Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)
Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)
 

Recently uploaded (9)

CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 

Выявление неполадок в Java приложениях

  • 1. Выявление неполадок в java-приложениях Павел Грушецкий pavel_grushetzky@epam.com
  • 3.
  • 4. Боремся с неисправностями  Инструменты  выявление проблем  локализация  Практики  профилактика проблем  упрощение диагностики
  • 5. Инструменты - JConsole  Входит в JDK 1.5+  Приложение -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9920 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=your. hostname.com  Клиент jconsole your. hostname.com:9920
  • 6.
  • 7.
  • 11. Инструменты - VisualVM profiler visual GUI GC jps jhat jmap jstat
  • 15. Пример История одной оптимизации обработка Чтение Файл обработка БД построчно обработка  Ожидаем многократное ускорение  Процесс в основном ждёт ответа БД  RAC отлично масштабируется  Сделали – померяли – ускорения нет. Разберёмся?
  • 17. 2. Thread dump Заблокированный поток пытается вернуть коннекцию в пул
  • 18. 2. Thread dump А владелец блокировки валидирует новую коннекцию
  • 19. 2. Thread dump И правда, Преступление раскрыто! , казалось бы…
  • 20. 3. Здравый смысл  А почему эти потоки открывают-закрывают коннекции?  А что там у нас выше по стеку?  А откуда?  А если избавиться? - ускорение 10х+
  • 21. 4. Выводы  Visualvm замечательно показывает происходящее «изнутри»  Инструменты не заменяют здравый смысл, а дополняют  Ищите основную причину, а не первую  Современные технологии просты в использовании. Внести неочевидную проблему проще, чем когда-либо.
  • 25. Аудит данных  Цель – знать кто, что и когда изменял когда  На уровне структур данных: creator, create_timestamp, modifier, modify_timestamp  А также история изменений кто  К примеру, {modifier, timestamp, property, old val, new val}  Да, это требует места что
  • 26. Отладочное логирование  Не System.out.println() !  Разумные уровни логирования и ротация  В паттерне Не забудьте синхронизировать время серверов  Дата/время  Имя потока  MDC – имя пользователя, корреляционная информация  Конфигурация через JMX  Время исполнения ключевых методов  Обращение к внешним ресурсам – БД, веб-сервис, JMS  Perf4j или самостоятельно (AOP)
  • 28. Рестарт…  При нестабильной работе первым делом…  … выдернуть шнур, выдавить стекло рестарт!
  • 29. Рестарт…  При нестабильной работе первым делом…  … выдернуть шнур, выдавить стекло рестарт!
  • 30. Данные Рестарт Анализ Решение диагностики Thread dump (3 шт) Heap Логи dump
  • 31. Резюме  Инструменты  Практики  visualvm  Отладочное логирование  jconsole  Аудит данных  eclipse MAT  Peer review  (jrockit mission control)  Своевременная диагностика
  • 32. Спасибо! Ваши вопросы и комментарии http://visualvm.java.net/ http://google.com/search?q=visualvm+over+ssh http://google.com/search?q=jrockit+flight+recorder http://perf4j.codehaus.org/ http://www.eclipse.org/mat/ pavel_grushetzky@epam.com
  • 33.
  • 34.