Apache, JBOSS à l'aide de AJP (mod_jk) donnant des pics dans le nombre de threads
Nous avons utilisé Apache, JBOSS pour l'hébergement de notre Application, mais nous avons trouvé que certaines questions liées à la manipulation du fil de mod_jk.
Notre site web est sous un faible volume de trafic des sites web et du maximum de 200 à 300 utilisateurs simultanés lors de notre site de pic d'activité. Comme le trafic se développe (pas en termes de nombre d'utilisateurs simultanés, mais en termes de la somme des demandes qui sont venus à notre serveur), le serveur a cessé de servir les demandes de long, bien qu'il ne s'est pas effondré, mais ne pouvait pas répondre à la requête jusqu'à 20 minutes. Le serveur JBOSS console a montré que 350 fils étaient occupés sur les deux serveurs bien qu'il y ait assez de mémoire libre-dire plus de 1-1.5 GO (2 serveurs pour JBOSS ont été utilisées, qui étaient au nombre de 64 bits, 4 GO de RAM allouée pour JBOSS)
Afin de vérifier le problème, nous avons été à l'aide de JBOSS et Web Apache Consoles, et nous avons été voir le thread montraient dans l'état aussi longtemps que minutes, bien que nos pages environ 4-5 secondes pour être servi.
Nous avons pris le thread dump et a constaté que les fils étaient pour la plupart en état d'ATTENTE qui signifie qu'ils sont en attente indéfiniment. Ces fils étaient pas de notre Application, les Classes, mais de l'AJP 8009 port.
Quelqu'un pourrait m'aider en cela, comme de quelqu'un d'autre peut aussi eu ce problème et l'a résolu en quelque sorte. Dans le cas d'un complément d'informations est nécessaire, alors laissez-moi savoir.
Est aussi mod_proxy mieux que d'utiliser mod_jk, ou il ya quelques autres problèmes avec mod_proxy qui peut être fatale pour moi, si je passe en mod__proxy?
Les versions que j'ai utilisé sont les suivantes:
Apache 2.0.52
JBOSS: 4.2.2
MOD_JK: 1.2.20
JDK: 1.6
Operating System: RHEL 4
Merci pour l'aide.
Les gars!!!! Nous avons enfin trouvé la solution avec la configuration ci-dessus mentionnés. C'est l'utilisation de l'APR et est mentionné ici: http://community.jboss.org/thread/153737. Sa question correctement mentionné par de nombreuses personnes dans les réponses ci-dessous c'est à dire connecteur question. Précédemment, nous avons effectué solution temporaire par la configuration de hibernate et augmenter le temps de réponse. La pleine correctif est AVR.
OriginalL'auteur Ashish Jain | 2009-12-04
Vous devez vous connecter pour publier un commentaire.
Nous sommes confrontés à des problèmes similaires. Nous travaillons toujours sur les solutions, mais il ressemble à beaucoup de réponses peuvent être trouvées ici:
http://www.jboss.org/community/wiki/OptimalModjk12Configuration
Bonne chance!
OriginalL'auteur Naganalf
Déployer Apache natif AVR sous jboss/bin/native.
Modifier votre jboss run.sh pour s'assurer qu'il est à la recherche pour le natif libs dans le bon dossier.
Cette force de jboss à l'utilisation native connecteur AJP trheads plutôt que la valeur par défaut en pur java.
OriginalL'auteur Dan
Vous devriez également prendre un coup d'oeil à l'JBoss Jira question, intitulé "Connecteur AJP Fils Pendu dans CLOSE_WAIT Statut":
https://jira.jboss.org/jira/browse/JBPAPP-366
OriginalL'auteur Stephen Souness
Ce que nous avons fait pour le tri cette question est comme suit:
Paramètres ci-dessus est assuré que les threads ne sont pas bloqués par lucene et mise en veille prolongée de recherche. Par défaut optimiseur de hibernate fait de notre vie facile, donc je considère ce paramètre très important.
Également supprimé les C3P0 le regroupement de connexions et utilisés intégré connexion JDBC mise en commun, donc nous avons commenté la section ci-dessous.
Après avoir fait tout cela, nous avons été en mesure de réduire considérablement le temps d'un AJP fil a été prise à servir les requêtes et les fils ont commencé à venir à la R état, après avoir occupé la demande c'est à dire en l'état.
OriginalL'auteur Ashish Jain
Il y a un bug dans tomcat 6 qui a été déposé récemment. C'est en ce qui concerne le connecteur HTTP, mais les symptômes ont le même son.
https://issues.apache.org/bugzilla/show_bug.cgi?id=48843#c1
OriginalL'auteur Mark
Nous étions à cette question dans un Jboss 5 de l'environnement. La cause est un service web qui a pris plus de temps à répondre que Jboss/Tomcat permis. Ce serait la cause de l'AJP pool de threads, éventuellement, d'en épuiser ses threads disponibles. Il serait alors cesser de répondre. Notre solution a été de régler le service web pour utiliser une Requête/Reconnaissez modèle plutôt qu'une Demande/Répondre motif. Cela a permis au web service pour répondre dans le délai d'attente à chaque fois. Accordé ce n'est pas de résoudre le sous-jacent problème de configuration de Jboss, mais il était plus facile pour nous de le faire dans notre contexte de réglage de jboss.
OriginalL'auteur David Mann
Il y a un bug lié au connecteur AJP exécuteur des fuites de threads et la solution est expliqué ici Jboss AJP pool de threads a pas publié de threads inactifs. En résumé, AJP thread du pool de connexions par défaut ont pas de délai d'attente et seront conservées de façon permanente une fois établi. Espérons que cela aide,
OriginalL'auteur user3277258