Приложение Jruby Rails на скачках загрузки процессора Tomcat
-
23-09-2019 - |
Вопрос
Это также может относиться к serverfault.Это своего рода комбинация конфигурации сервера и кода (я думаю)
Вот моя установка:
Rails 2.3.5 app running on jruby 1.3.1
Service Oriented backend over JMS with activeMQ 5.3 and mule 2.2.1
Tomcat 5.5 with opts: "-Xmx1536m -Xms256m -XX:MaxPermSize=256m -XX:+CMSClassUnloadingEnabled"
Java jdk 1.5.0_19
Debian Etch 4.0
Выполняется top
, каждый раз, когда я нажимаю на ссылку на моем сайте, я вижу свой java
обработайте всплеск загрузки процессора.Если это небольшая страница, иногда используется всего 10%, но иногда на более сложной странице мой процессор увеличивается до 44% (никогда не выше, не знаю почему).В этом случае запрос может занять более нескольких минут, пока мой сервер load average
неуклонно поднимается до 8 или выше.Это просто щелчок по одной ссылке, которая загружает несколько запросов от некоторых сервисов, ничего слишком сложного.Память процесса Java большую часть времени колеблется примерно на 20%.
Если я оставлю это ненадолго, средняя нагрузка снова сведется к нулю.Перейдя еще по нескольким ссылкам, снова поднимаемся вверх.
Я запускаю небольшой экземпляр amazon для интерфейса rails и большой экземпляр для всех сервисов.
Так вот, это, очевидно, неприемлемо.Один пользователь может довести среднюю нагрузку spike до 8, а при использовании двумя людьми он поддерживает эту среднюю нагрузку в течение всего времени нашего использования сайта.Мне интересно, что я могу сделать, чтобы проверить, что происходит?Я в полной растерянности относительно того, как я могу это отладить.(это не происходит локально, когда я запускаю приложение rails через jruby, а не внутри контейнера tomcat)
Может ли кто-нибудь просветить меня относительно того, как я мог бы проверить свое приложение jruby, чтобы выяснить, как оно могло бы использовать такие огромные ресурсы?
Обратите внимание, я заметил это немного раньше, казалось бы, наугад, но теперь, после обновления с Rails 2.2.2 до 2.3.5, я вижу это ПОСТОЯННО, и это делает сайт полностью непригодным для использования.
Мы очень ценим любые советы о том, где искать.Я даже не знаю, с чего начать.
Нет правильного решения
Другие советы
Убедитесь, что между Tomcat и чем-то другим нет неожиданной связи.Я бы проверил в первую очередь, если:
- ActiveMQ broker не взаимодействует с другими брокерами в вашей сети.По умолчанию AMQ broker запускается в режиме автоматического обнаружения OpenWire.
- JGroups / Многоадресные рассылки, как правило, не взаимодействуют с чем-либо в вашей сети.
Эта ненужная нагрузка может возникнуть в результате обработки сообщений, поступающих из другого приложения.