Это может также быть связано с 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, я вижу это ВСЕ ВРЕМЯ, и это делает сайт полностью непригодным для использования.
Любые советы о том, где искать, очень ценятся. Я даже не знаю, с чего начать.
Спасибо за подсказку. Я на самом деле рубиновый парень на фронте, поэтому я все еще работаю над java/activemq, но я посмотрю, когда я получу шанс – brad