Это также может относиться к ошибке сервера. Это своего рода комбинация конфигурации сервера и кода (я думаю)
Вот моя установка:
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 и большой экземпляр для всех сервисов.
Сейчас это явно неприемлемо. Один пользователь может довести среднюю нагрузку до 8, а если его используют два человека, он поддерживает эту среднюю нагрузку в течение всего времени использования сайта. Мне интересно, что я могу сделать, чтобы проверить, что происходит? Я в полной растерянности относительно того, как я могу отладить это. (это не происходит локально, когда я запускаю приложение rails через jruby, а не внутри контейнера tomcat)
Может ли кто-нибудь просветить меня, как я могу проверить свое приложение jruby, чтобы узнать, как оно может использовать такие огромные ресурсы?
Обратите внимание, я заметил это немного раньше, казалось бы, случайно, но теперь, после обновления с Rails 2.2.2 до 2.3.5, я вижу это ВСЕ ВРЕМЯ, и это делает сайт совершенно непригодным для использования.
Приветствуются любые советы, где искать. Я даже не знаю, с чего начать.