jboss peut pas gérer de plus de 3000 demande
J'ai créé un service web à la fois client et serveur. J'ai pensé à faire le test de performance. J'ai essayé avec jmeter un exemple de plan de test à exécuter. Jusqu'à 3000 demande jboss traité la demande mais, lorsque les demandes de plus de 3000 certains de la demande ne sont pas traitées (Dans le sens de Peut pas ouvrir la connexion : Connexion refusée). Où je dois faire les modifications permettant de gérer plus de 10000 demande en même temps. Soit c'est un problème jboss ou le Débit du Système ?
jmeter Config : 300 Fils, 1 sec de la rampe en haut et 10 en boucle ups.
Système (configuration du Serveur) : Windows 7, 4G de RAM
Si vous avez seulement 300 demandes simultanées, droit (300 fils en faisant 10 requêtes consécutives)? Alors, où voyez-vous la "connexion refusée", chez le client ou sur le serveur?
Dans le jemeter réponse . Il l'obtenir à partir du serveur.
Dans le jemeter réponse . Il l'obtenir à partir du serveur.
OriginalL'auteur Arung | 2012-07-29
Vous devez vous connecter pour publier un commentaire.
10 mille requêtes simultanées dans Tomcat (je crois que c'est utilisé dans JBoss), c'est beaucoup. Dans la configuration classique (avec blocage IO connecteur) vous avez besoin d'un thread par une connexion HTTP. C'est beaucoup trop pour le commun des JVM. Sur un serveur 64 bits machine un thread a besoin de 1 MiB (découvrez
-Xss
paramètre). Et vous avez seulement 4 GiB.En outre, la nombre de changements de contexte va tuer votre performance. Vous auriez besoin des centaines de cœurs pour traiter efficacement toutes ces connexions. Et si votre demande est d'e/S ou de la base de données liée, vous verrez un goulot d'étranglement ailleurs.
Cela étant dit, vous avez besoin d'une approche différente. Essayez de non-blocage I/O asynchrones ou des servlets (depuis la version 3.0) ou... à l'échelle. Par défaut, Tomcat peut gérer 100 à 200 connexions simultanées (par défaut raisonnables) et une quantité similaire de connexions sont mises en file d'attente. Tout au-dessus qui est rejeté et vous êtes probablement victime d'.
Voir aussi
J'ai ajouté quelques liens à ma réponse. En principe, avec asynchrone servlet 3.0, vous pouvez gérer de multiples connexions avec très peu de threads.
OriginalL'auteur Tomasz Nurkiewicz
Il y a deux problèmes communs que je pense.
Tout d'abord, si vous exécutez JBoss sur Linux en tant qu'utilisateur normal, vous pouvez exécuter en "Trop de fichiers ouverts', si vous n'avez pas à modifier les limites.fichier conf. Voir https://community.jboss.org/thread/155699. Chaque prise est considérée comme une "ouvrir un fichier" pour Linux, le système d'exploitation pourrait bloquer vos connexions à cause de cela.
Deuxième, le maximum de la taille du pool de threads pour les connexions entrantes est de 200 par défaut. Cela limite le nombre de demandes simultanées, c'est à dire les demandes qui sont en cours en même temps. Si vous avez jmeter faire 300 fils, jboss connecteur de pool de threads doit être plus grand. Vous pouvez le trouver dans jboss6 dans le jboss-web.sar/server.xml. Cherchez "maxThreads" dans l'élément: http://docs.jboss.org/jbossweb/latest/config/http.html.
200 est le maximum recommandé pour un PROCESSEUR simple core. De plus, les changements de contexte de commencer à lui donner trop de frais généraux, comme Tomasz dit. Donc pour une utilisation en production, seulement d'augmenter de 400 sur un dual core, 800 sur un quad core, etc.
OriginalL'auteur Geert Pante