У нас есть ферма серверов с балансировкой нагрузки, использующая Tomcat 7. Время от времени (по крайней мере, раз в день) загрузка ЦП сервера резко возрастает. Это похоже на законное использование сервера, а не на ошибку, но я не могу понять, как определить, какой конкретный сайт вызывает эти скачки ЦП.
Вот инструменты, которые мы используем:
Есть ли способ связать их вместе и узнать, какие потоки работали во время пика?
Или есть лучший инструмент, который нам нужен?
Java Flight Recorder и Java Mission Control стоит попробовать, если Oracle Hotspot Jdk 1.7u40 + запускает Tomcat. Помните, вы должны запустить JVM с аргументом JVM -XX:+UnlockCommercialFeatures
и обеспечить поддержку JMX, чтобы иметь возможность подключаться к процессу Java с помощью JMC.
Мы используем инструмент под названием psi-probe
. Это больше взгляд на данные в реальном времени, а не на ранее возникшую проблему. Но он дает статистику для всех ваших различных веб-приложений, включая соединения, потоки, трафик и т. Д. Это достойно для бесплатного инструмента.
Если это воспроизводимо или, по крайней мере, происходит ежедневно, запустите NewRelic на день (бесплатный уровень) и попробуйте зафиксировать это на уровне ОС ... или интегрировать в приложение и получить подробную статистику. Очень удобный инструмент для чего-то подобного.
Редактировать:
Также возможно профилирование ...