J'ai une application Struts 1.3 exécutée dans JBOSS AS 5.1. Nous avons défini 2000 Threads HTTP dans le fichier server.xml pour le Connecteur HTTP et alloué environ 2 Go de RAM dans le tas JVM à JBOSS dans le fichier run.conf. Le système a un total de 4 Go de RAM et la RAM restante est utilisée par d'autres applications.JBOSS se bloque lorsque la limite maxThreads est atteinte
Chaque fois que mon système est touché avec plus de 2000 requêtes simultanées, Jboss se bloque et cesse de fonctionner. Je ne reçois pas d'exceptions sur la console ou d'erreurs de mémoire de toute sorte, il se bloque.
Comment résoudre ce problème? Dois-je mettre mod_cluster ou quelque chose en face de JBOSS? Ou devrais-je juste allouer plus de threads au connecteur, si oui, comment puis-je savoir quel ratio utiliser entre la mémoire et maxThreads sur le connecteur HTTP?
Voulez-vous dire configurer plusieurs instances sur le même système? Si oui, pourquoi cela serait-il bénéfique sur une seule instance de JBOSS? Il s'agit d'une application Web d'entreprise. La gestion de plus de 2000 utilisateurs est donc une nécessité. Aussi pourriez-vous recommander un outil que je pourrais utiliser pour déterminer combien de mémoire chaque composant de mon application utilise? – user1266369
@ user1266369 Vous n'avez pas besoin de 2 000 threads de connecteur pour gérer 2 000 utilisateurs. À moins que l'application fasse un usage intensif de _very_, 200 est probablement plus réaliste. Pour plus de débit, plus d'espace RAM/tas aidera et il existe de nombreuses façons d'accorder le connecteur pour de meilleures performances. – Mikaveli
Si c'est une application Web d'entreprise, vous ne voulez pas une instance desservant tous les utilisateurs. Que se passe-t-il lorsque cette instance unique tombe en panne? Le basculement est certainement une raison pour configurer plusieurs instances. En outre, si l'utilisation du processeur sur ce serveur augmente, vous pouvez toujours tenir un autre serveur et déplacer la seconde instance vers ce serveur. – bubbly