2010-02-26 3 views
0

Это может также быть связано с serverfault. Это своего рода комбо между конфигурации сервера и кода (я думаю)Приложение Jruby Rails для использования процессоров Tomcat

Вот мои настройки:

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 или больше. Это просто щелчок по одной ссылке, которая загружает несколько запросов от некоторых служб, ничего сложного. Явная обработка процесса занимает около 20% большую часть времени.

Если я оставлю это немного, средняя загрузка вернется к нулю. Нажимая еще несколько ссылок, поднимается вверх.

Я запускаю небольшой экземпляр amazon для интерфейса rails и большой экземпляр для всех сервисов.

Теперь это, очевидно, неприемлемо. Один пользователь может принести спайку среднюю нагрузку до 8 и с двумя людьми, использующими ее, она поддерживает эту нагрузку в среднем на время использования нашего сайта. Мне интересно, что я могу сделать, чтобы проверить, что происходит? Я полностью потеряю, как отлаживать это. (это происходит не локально, когда я запускаю приложение rails через jruby, а не внутри контейнера tomcat)

Может кто-нибудь просветить меня о том, как я могу проверить в своем приложении jruby, чтобы узнать, как это возможно использовать такие огромные ресурсы?

Примечание. Я заметил это немного раньше, казалось бы, наугад, но теперь, после обновления с Rails 2.2.2 до 2.3.5, я вижу это ВСЕ ВРЕМЯ, и это делает сайт полностью непригодным для использования.

Любые советы о том, где искать, очень ценятся. Я даже не знаю, с чего начать.

ответ

0

Убедитесь, что между Tomcat и чем-то еще нет неожиданной связи. Я бы поставил на первое место, если:

  • Брокер ActiveMQ не взаимодействует с другими брокерами в вашей сети. По умолчанию брокер AMQ запускается в режиме автообнаружения OpenWire.
  • JGroups/Multicast вообще не общаются с чем-то в вашей сети.

Эта ненужная нагрузка может возникнуть в результате обработки сообщений, поступающих из другого приложения.

+0

Спасибо за подсказку. Я на самом деле рубиновый парень на фронте, поэтому я все еще работаю над java/activemq, но я посмотрю, когда я получу шанс – brad

Смежные вопросы