2010-02-26 4 views
0

Cela peut également appartenir à serverfault. Il est une sorte de combo entre config serveur et le code (je pense)Application Jruby Rails sur les pics d'utilisation du processeur Tomcat

Voici ma configuration:

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 

Courir top, chaque fois que je clique sur un lien sur mon site, je vois mon pic d'utilisation du processeur java processus . Si c'est une petite page, c'est parfois seulement 10% d'utilisation, mais parfois sur une page plus compliquée, mon processeur va jusqu'à 44% (jamais au-dessus, je ne sais pas pourquoi). Dans ce cas, une demande peut prendre plusieurs minutes, alors que le load average de mon serveur grimpe régulièrement jusqu'à 8 ou plus. C'est juste en cliquant sur un lien qui charge quelques demandes de certains services, rien de trop compliqué. La mémoire de processus Java tourne autour de 20% la plupart du temps.

Si je le laisse un peu, la moyenne de la charge redescend à zéro. En cliquant sur quelques liens supplémentaires, on remonte. Je cours une petite instance d'amazon pour le frontend de rails et une grande instance pour tous les services.

Maintenant, cela est évidemment inacceptable. Un seul utilisateur peut faire grimper la moyenne de la charge à 8 et avec deux personnes l'utilisant, il maintient cette moyenne de charge pour la durée de notre utilisation du site. Je me demande ce que je peux faire pour inspecter ce qui se passe? Je suis à une perte complète quant à la façon dont je peux déboguer cela. (il ne se produit pas localement lorsque je lance l'application rails via jruby, pas à l'intérieur du conteneur tomcat)

Quelqu'un peut-il m'éclairer sur la façon dont je pourrais inspecter sur mon application jruby pour savoir comment il pourrait éventuellement être utilisé ces énormes ressources? Remarque, j'ai remarqué cela un peu avant, apparemment au hasard, mais maintenant, après la mise à jour de Rails 2.2.2 à 2.3.5 je le vois tout le temps et il rend le site complètement inutilisable.

Des conseils sur l'endroit où regarder sont grandement appréciés. Je ne sais même pas par où commencer.

Répondre

0

Assurez-vous qu'il n'y a pas de communication inattendue entre le Tomcat et quelque chose d'autre. Je voudrais vérifier en premier lieu si:

  • Le courtier ActiveMQ ne communique pas avec les autres courtiers de votre réseau. Par défaut, le courtier AMQ démarre en mode de découverte automatique OpenWire. JGroups/Multicasts en général ne communiquent pas avec quelque chose dans votre réseau.

Cette charge inutile peut résulter du traitement des messages provenant d'une autre application.

+0

Merci pour le conseil. Je suis en fait le gars rubis sur le devant donc je travaille toujours ma tête autour de java/activemq mais je vais jeter un coup d'oeil quand j'aurai la chance – brad

Questions connexes