l9_nc
.pdfПример 1
•Обследуй
•У нас нет мониторинга
•Есть проблема, но нет старых данных
•Построй гипотезу
•Если бы у нас был мониторинг, мы бы могли разобраться в проблеме
•Улучши
•Внедрить систему мониторинга
•Возьмём Hyperic HQ (или любой другой)
© 2013 NetCracker Technology Corporation Confidential |
11 |
Пример 1
•Проверь
•Запусти тесты снова
•Обследуй
•Мониторинг показал, что один из серверов работает медленнее
‒Обрабатывает меньше запросов в секунду
‒У транзакций повысились тайм-ауты
‒Выше нагрузка на CPU
‒Упал сетевой трафик
•Улучши
•Промониторить медленный сервер
•Проверить лог-файлы
•Сколько потоков работает? Сделать дамп потоков.
© 2013 NetCracker Technology Corporation Confidential |
12 |
Пример 1
•Построй гипотезу
•Дамп потоков показывает множество потоков, которые ожидают когда освободится для записи файл журнала
•Файл журнала содержит сообщения уровня отладки
‒(А на других серверах такого нет)
•Спец говорит: “Конфигурации идентичны, все автоматом создается Maven”
‒(Не верь никому)
•Проверь
•Заглянуть на сервер и вручную проверь конфигурацию сервера
© 2013 NetCracker Technology Corporation Confidential |
13 |
Пример 1
•Решение
•На одном из рабочих серверов было включено журналирование в режиме отладки
•Когда отключили журналирование - скорость вернулась к старым показателям
© 2013 NetCracker Technology Corporation Confidential |
14 |
Hyperic HQ
© 2013 NetCracker Technology Corporation Confidential |
15 |
Hyperic HQ
•Это средство для мониторинга
•Но не средство для профилирования
•Статистические данные
•Тренды
•Отклонение в поведении
•‘Горячие’ точки
•Собирает данные о
•JVM
•JMX (Java Management eXtensions, http://www.nestor.minsk.by/sr/2005/08/sr50808.html)
•OS
http://www.opennet.ru/base/net/hyperic_hq_mon.txt.html
© 2013 NetCracker Technology Corporation Confidential |
16 |
Альтернатива JVusualVM
© 2013 NetCracker Technology Corporation Confidential |
17 |
Дамп потоков (Thread Dumps)
•Инструмент №2 при диагностике проблем с производительностью
•CTRL-BREAK в windows
•Kill -3 в Unix/Linux
•Jstack
•Нам вернется информация, что делают все потоки внутри виртуальной машине в данный момент
© 2013 NetCracker Technology Corporation Confidential |
18 |
Дамп потоков (Thread Dumps)
•Несколько дампов в течении длительного промежутка времени дает хорошее представление о том, что творится внутри приложения
•Большинство операций, которые занимают много времени проявятся
•Мы увидим, на что похоже «нормальное» состояние сервера
© 2013 NetCracker Technology Corporation Confidential |
19 |
Дамп потоков (Thread Dumps)
Куда смотреть:
•Вершина стека
•Ваш код в стеке
•Длинные (глубокие) стеки
•Блокировки (deadlocks) и другие проблемы с потоками
© 2013 NetCracker Technology Corporation Confidential |
20 |