SlideShare une entreprise Scribd logo
JBoss Clustering & Tuning Fourat Z.Lab Technique N°3/3Senior software architectfourat.zouari@tritux.com
Qui sommes nous?TRITUXS.A.R.L.est une SSII Tunisienne, créée en 2006 Une équipe jeune (30 ingénieurs) orientée nouvelles technologies
 Prestations de pointe en Administration système Linux,clustering et haute disponibilité,solutions VAS (telecom),mobile banking, SMS et SOA.(c.f. http://tritux.com/services )
 Editeur de plusieurs logiciels dans divers domaines I.T.(c.f. http://tritux.com/products )
Mise en place d’architectures « enterprise », ex: Clusters, Firmes de données, SOA (ESB), EAI2
PlanIntroduction à la mesure de performanceStress Test avant tuninga. Cas de testb. Dimensionnement  (serveur)c. RésultatsOptimisation de JBoss EAP 5.1a.  Supprimer le non utilisé par votre applicationb. Configuration de log4jc. Configuration de la mémoire JVMd. Configuration de la data sourcee. Configuration de la connexion HTTP Stress Test après tuningConclusions3
Introduction à la mesure de performances		Les stress test ou test de monté de charge consiste à simuler un grand nombre d’utilisateurs qui exploitent simultanément votre application.	Notre but via ce test et d’étudier si votre application qui est supposé déployé sur le serveur JBoss EAP 5.1 répondait réellement à vos besoins (nombres d’utilisateurs supporté, ressources matérielles, consommation bande passante…). Pour ce la on dispose d’un très bon outil de mesures de performances et stress test appelée Jakarta Jmeter disponible sous le répertoire outillage du CD de formation.4
Stress Test avant tuningsPrésentationPour les performances on  cherche:
Coté client :  Minimiser le maximum le temps de réponse.temps de réponse: c’est le temps écoulé pendant que l’utilisateur clique sur un bouton et la page (résultat) sera affichée par le navigateur.
Coté serveur: Maximisé le maximum débit (Throughput).Le débit: (Throughput): C’est le nombre de transactions qui peuvent se produire dans un laps de temps donnée,  il est normalement mesuré en transactions par seconde (tps). 5
Stress Test avant tuningsa. Cas de test		Notre objectif est de simuler une masse d’utilisateurs qui appellent le point d’entré de notre l’application helloworld à l’adresse «  http://<adresse-ip>:8080/helloworld/home.seam »En accédant à cette adresse le client (browser) envoie au serveur JBoss une requête HTTP GET.Cas de test:- 1er Cas: 1 utilisateur qui fera 100 invocations consécutives.- 2ème Cas: 5utilisateurs qui feront au même instant 100 invocations consécutives,.- 3ème Cas: 25 utilisateurs qui feront au même instant 100 invocations consécutives.6
Stress Test avant tuningsb. Dimensionnement  (serveur)CPU: Intel(R) Core (TM)2 Duo CPU - 2.00GHz (32 Bits)
Mémoire Physique: 3 Go
Mémoire virtuelle (SWAP): 2 Go
Carte réseau: Fast Ethernet 10/100 Mb/s
Système d’exploitation: Red Hat Enterprise Linux Server release 5.4                                        version du kernel: 2.6.18-164.el57
Stress Test avant tuningc. Résultats:sTemps de démarrage du serveur : 50 secondes1er Cas :
Débit (Throughput): 10 Tps
Echec: 0%
Attente Moyenne: 98 ms
2ème Cas :
Débit (Throughput): 18 Tps
Echec: 0%

Contenu connexe

PPTX
JBoss clustering et tuning (lab 2/3)
DOCX
Scheduler & SLA
PDF
Tpdba1
DOCX
Rapport Kernel Linux - Configuration – Compilation & installation
PPTX
Concepts de sauvegarde et de récupération
PDF
Tpdba3
PPT
PostgreSQL sous linux
JBoss clustering et tuning (lab 2/3)
Scheduler & SLA
Tpdba1
Rapport Kernel Linux - Configuration – Compilation & installation
Concepts de sauvegarde et de récupération
Tpdba3
PostgreSQL sous linux

Tendances (20)

PDF
PostgreSQL sous linux
ODT
utilisation des core dump sous linux
PDF
Rapport systéme embarqué busybox
PDF
Rapport openembedded
PDF
Sqloracle
PPTX
Presentation kernel - Kernel Linux - Configuration – Compilation & installation
PDF
Installation et configuration d'apache tomcat
PDF
T1 corrections-qcm
PPT
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
PDF
Clonezilla serveur
PDF
PPT
DRAFT - Vm Ware - Installation Nuxeo
PDF
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
PPT
Mysql Apche PHP sous linux
DOC
PostgreSQL
PDF
Db aing td1v1
PDF
Db aing td3v1
PDF
Mise en place d'un système de messagerie roundcube sous cent os 7
PPTX
Exposé open embedded
ODP
#7 Migration
PostgreSQL sous linux
utilisation des core dump sous linux
Rapport systéme embarqué busybox
Rapport openembedded
Sqloracle
Presentation kernel - Kernel Linux - Configuration – Compilation & installation
Installation et configuration d'apache tomcat
T1 corrections-qcm
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
Clonezilla serveur
DRAFT - Vm Ware - Installation Nuxeo
NFS, MPI, Programmation Sérial & Parallèle avec Condor Scénarios et Simulatio...
Mysql Apche PHP sous linux
PostgreSQL
Db aing td1v1
Db aing td3v1
Mise en place d'un système de messagerie roundcube sous cent os 7
Exposé open embedded
#7 Migration
Publicité

Similaire à JBoss clustering et tuning (lab 3/3) (20)

PPTX
Performance et optimisation de PrestaShop
PDF
Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)
PDF
Installation Et Configuration De Nutch
PDF
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
DOC
my_resume(fre)
PPTX
Réussir une montée en charge avec MongoDB
PDF
Sizing PoC LSF & PowerAI for Engineers schools workloads
PDF
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
PPT
Drools et les moteurs de règles
PPTX
Java dans Windows Azure: l'exemple de Jonas
PDF
Rapport tp1 j2ee
ODP
OW2 JASMINe
PDF
iTunes Stats
PPTX
JBoss clustering et tuning (lab 1/3)
PDF
BBL - Monitoring - kyriba
PDF
Installation Et Configuration De Monkey Spider
PPTX
Meetup angular rshop
PDF
1 installation-exchange
PDF
RefCard Tests sur tous les fronts
PDF
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Performance et optimisation de PrestaShop
Chap XIV : Calcul parallèle (Fondements & Principe d'utilisation)
Installation Et Configuration De Nutch
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
my_resume(fre)
Réussir une montée en charge avec MongoDB
Sizing PoC LSF & PowerAI for Engineers schools workloads
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Drools et les moteurs de règles
Java dans Windows Azure: l'exemple de Jonas
Rapport tp1 j2ee
OW2 JASMINe
iTunes Stats
JBoss clustering et tuning (lab 1/3)
BBL - Monitoring - kyriba
Installation Et Configuration De Monkey Spider
Meetup angular rshop
1 installation-exchange
RefCard Tests sur tous les fronts
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Publicité

Plus de Fourat Zouari (8)

PDF
La SOA au sein des systèmes d'information
PPT
SMS football VAS
PPT
SMS Chat platform
PPTX
Mise en place d'une architecture SOA avec JBoss SOA Platform
PPSX
Fonctionnalités JBoss ESB
PPTX
MobiBank v1.2: Mobile banking platform
PPTX
Fidelcom: Plateforme de fidélisation d'abonnés
PPTX
Monitoring avec Zabbix
La SOA au sein des systèmes d'information
SMS football VAS
SMS Chat platform
Mise en place d'une architecture SOA avec JBoss SOA Platform
Fonctionnalités JBoss ESB
MobiBank v1.2: Mobile banking platform
Fidelcom: Plateforme de fidélisation d'abonnés
Monitoring avec Zabbix

JBoss clustering et tuning (lab 3/3)

  • 1. JBoss Clustering & Tuning Fourat Z.Lab Technique N°3/3Senior software architectfourat.zouari@tritux.com
  • 2. Qui sommes nous?TRITUXS.A.R.L.est une SSII Tunisienne, créée en 2006 Une équipe jeune (30 ingénieurs) orientée nouvelles technologies
  • 3. Prestations de pointe en Administration système Linux,clustering et haute disponibilité,solutions VAS (telecom),mobile banking, SMS et SOA.(c.f. http://tritux.com/services )
  • 4. Editeur de plusieurs logiciels dans divers domaines I.T.(c.f. http://tritux.com/products )
  • 5. Mise en place d’architectures « enterprise », ex: Clusters, Firmes de données, SOA (ESB), EAI2
  • 6. PlanIntroduction à la mesure de performanceStress Test avant tuninga. Cas de testb. Dimensionnement (serveur)c. RésultatsOptimisation de JBoss EAP 5.1a. Supprimer le non utilisé par votre applicationb. Configuration de log4jc. Configuration de la mémoire JVMd. Configuration de la data sourcee. Configuration de la connexion HTTP Stress Test après tuningConclusions3
  • 7. Introduction à la mesure de performances Les stress test ou test de monté de charge consiste à simuler un grand nombre d’utilisateurs qui exploitent simultanément votre application. Notre but via ce test et d’étudier si votre application qui est supposé déployé sur le serveur JBoss EAP 5.1 répondait réellement à vos besoins (nombres d’utilisateurs supporté, ressources matérielles, consommation bande passante…). Pour ce la on dispose d’un très bon outil de mesures de performances et stress test appelée Jakarta Jmeter disponible sous le répertoire outillage du CD de formation.4
  • 8. Stress Test avant tuningsPrésentationPour les performances on cherche:
  • 9. Coté client : Minimiser le maximum le temps de réponse.temps de réponse: c’est le temps écoulé pendant que l’utilisateur clique sur un bouton et la page (résultat) sera affichée par le navigateur.
  • 10. Coté serveur: Maximisé le maximum débit (Throughput).Le débit: (Throughput): C’est le nombre de transactions qui peuvent se produire dans un laps de temps donnée, il est normalement mesuré en transactions par seconde (tps). 5
  • 11. Stress Test avant tuningsa. Cas de test Notre objectif est de simuler une masse d’utilisateurs qui appellent le point d’entré de notre l’application helloworld à l’adresse «  http://<adresse-ip>:8080/helloworld/home.seam »En accédant à cette adresse le client (browser) envoie au serveur JBoss une requête HTTP GET.Cas de test:- 1er Cas: 1 utilisateur qui fera 100 invocations consécutives.- 2ème Cas: 5utilisateurs qui feront au même instant 100 invocations consécutives,.- 3ème Cas: 25 utilisateurs qui feront au même instant 100 invocations consécutives.6
  • 12. Stress Test avant tuningsb. Dimensionnement (serveur)CPU: Intel(R) Core (TM)2 Duo CPU - 2.00GHz (32 Bits)
  • 15. Carte réseau: Fast Ethernet 10/100 Mb/s
  • 16. Système d’exploitation: Red Hat Enterprise Linux Server release 5.4 version du kernel: 2.6.18-164.el57
  • 17. Stress Test avant tuningc. Résultats:sTemps de démarrage du serveur : 50 secondes1er Cas :
  • 29. Optimisation de JBoss EAP 5.1sa. Supprimer le non utilisé par votre application: Par défaut JBoss EAP plusieurs bibliothèques, composants et paramétrages qui sont dans la majorité du temps non exploités par votre application. Ces derniers consomment énormément de ressources (Mémoire, CPU, Espace disque..) ce qui affecte la performance de votre application. Donc penser à éliminer toutes composantes ou paramètres non utilisés par votre application tout en se référent à ce qui suit.9
  • 30. Optimisation de JBoss EAP 5.1sSi votre application n’utilise pas les services EJB2/3 supprimer :- deploy/ejb3-connectors-jboss-beans.xml - deploy/ejb3-container-jboss-beans.xml - deploy/ejb3-interceptors-aop.xml- deploy/ejb3-timerservice-jboss-beans.xml- deploy/ejb2-container-jboss-beans.xml- deploy/ejb2-timer-service.xml- deployers/jboss-ejb3-endpoint-deployer.jar- deployers/ejb3-deployers-jboss-beans.xml
  • 31. Si votre application n’utilise pas JUDDI supprimer :- deploy/juddi-service.sar
  • 32. Si votre application n’utilise pas le générateur de clé UUID supprimer:- deploy/ uuid-key-generator.sar10
  • 33. Optimisation de JBoss EAP 5.1sSi votre application n’utilise pas JMS (Java Message Service),Supprimer:- conf/props/messaging-roles.properties- conf/props/messaging-users.properties- deploy/messaging- deploy/jms-ra.rar- deploy/quartz-ra.rar- deployers/ messaging-definitions-jboss-beans.xmlEditer: - conf/jbossts-properties.xml commenter ou supprimer: <property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1" value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/> </properties> 11
  • 34. Optimisation de JBoss EAP 5.1sSi votre application n’utilise pas JBoss Mail, supprimer:- deploy/mail-service.xml- deploy/mail-ra.rar
  • 35. Si votre application n’utilise pas JBoss Scheduling, supprimer:- deploy/schedule-manager-service.xml- deploy/scheduler-service.xml
  • 36. Si votre application n’utilise pas Hypersonic DB, supprimer:- deploy/hsqldb-ds.xml
  • 37. Suppression de Bsh Deployer:- deployers/bsh.deployer
  • 38. Désactivation de déploiement à chaud (Hot deployment)Supprimer: deploy/hdscanner-jboss-beans.xml12
  • 39. Optimisation de JBoss EAP 5.1sSi votre application n’utilise pas JBossWS (JBoss Web service), supprimer:- conf/jax-ws-catalog.xml- conf/props/jbossws-roles.properties- conf/props/jbossws-users.properties- depolyers/jbossws.deployer
  • 40. Si votre application n’est développée sur le Framework JBoss Seam, supprimer:- deployers/seam.deployer- deployers/webbeans.deployer- deployer/admin-console.war
  • 41. Si vous n’aurez pas besoin de la console d’administration vous pouvez la supprimer car elle consomme trop de ressources. Supprimer: - deployer/admin-console.war 13
  • 42. Optimisation de JBoss EAP 5.1sSi votre application n’utilise pas les services IIOP/Corba, Supprimer:- deploy/jacorb.properties- deploy/ iiop-service.xml- deployers/ejb3.deployer/META-INF/ ejb3-iiop-deployers-jboss-beans.xml- lib/jacorb.jar Editer: conf/jndi.propertiesremplacer cette ligne : java.naming.factory.initial=org.jboss.iiop.naming.ORBInitialContextFactorypar cette ligne :java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 14
  • 43. Optimisation de JBoss EAP 5.1sSuppression d’autres services (Attention: les dépendances avec votre application est à vérifier) :- deployers/deploy/jboss-xa-jdbc.rar- deploy/xnio-provider.jar
  • 44. Désactivation du Clustring si vous n’aurez pas besoin, Supprimer:- ./deploy-hasingleton- ./farm- deploy/clusterEditer : conf/bootstrap/profile.xml Supprimer ou commenter ça: <property name="farmURIs"> <listelementClass="java.net.URI"> <value>${jboss.server.home.url}farm</value> </list> </property>15
  • 45. Optimisation de JBoss EAP 5.1sSuppression d’autres services (Attention: les dépendances avec votre application est à vérifier) :- deployers/deploy/jboss-xa-jdbc.rar- deploy/xnio-provider.jar
  • 46. Désactivation du Clustring si vous n’aurez pas besoin, Supprimer:- ./deploy-hasingleton- ./farm- deploy/clusterEditer : conf/bootstrap/profile.xml Supprimer ou commenter ça: <property name="farmURIs"> <listelementClass="java.net.URI"> <value>${jboss.server.home.url}farm</value> </list> </property> 16
  • 47. Optimisation de JBoss EAP 5.1sb. Configuration de log4j La configuration par défaut du log est déconseillée en mode production, nous voulons seulement que les erreurs soient loggées.Éditer le fichier conf/jboss-log4j.xml puis remplacer tout le contenu du root (<root> ………….. </root>). par ça :<root> <priority value="ERROR"/> <appender-ref ref="FILE"/> </root>17
  • 48. Optimisation de JBoss EAP 5.1sc. Configuration de la mémoire JVM: Éditer la variable $JAVA_OPTS dans le fichier bin/run.conf-Xms<size> : taille (en Mo) minimum de la mémoire alloué: min-heap-Xmx<size> : taille (en Mo) maximum de la mémoire alloué: max-heapXms et Xmx doivent avoir la même valeur en production pour notre configuration.Le choix de cette valeur n’est pas au hasard, il faut qu’il soit bien étudier selon le nombre d’applications déployées, ressources utilisées etc…-XX:MaxPermSize: Il est recommander que cette valeur soit le 1/4 de max-heap.18
  • 49. Optimisation de JBoss EAP 5.1sd. Configuration de la data source: Editer le fichier data source xxxxx-ds.xml accompagné avec l’archive de votre application (war), La modification de ces deux paramètres peuvent optimiser la connexion avec la base:- min-pool-size: C’est le nombre initial de connexions à la BD qui peuvent être gardées.- max-pool-size: C’est le nombre maximale de connexions concurrentes à la BD. Cette valeur doit être répondre aux besoins de votre application et respecte le paramétrage de votre SGBD19
  • 50. Optimisation de JBoss EAP 5.1se. Configuration de la connexion HTTP: Éditer le fichier deploy/jbossweb.sar/server.xml, les paramètres les plus importants sont :- maxThreads : Il s’agit du nombre maximum de threads (nombre d’utilisateur qui peuvent exploiter en parallèle votre application).- acceptCount : si le nombre d’utilisateurs concurrents dépassent le nombre maximum autorisé maxThreads, l’attribut acceptCount représente la taille d’une file d’attente permettant de tenir j’usqu’au nombre acceptCount de threads en attente pour traitement. - compression : Si cet attribut reçoit la valeur « force », la réponse HTTP sera compressé par JBoss puis renvoyée au browser. (ça peu réduire la bande passante).Exemple: <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" connectionTimeout="20000" redirectPort="8443" maxThreads="50" acceptCount="100" compression="force" />20
  • 51. Stress Test après tuningsRésultat (avec les mêmes conditions précédentes)Temps de démarrage du serveur : 39 secondes1er Cas :
  • 52. Débit (Throughput): 12 Tps vs. 10 Tps
  • 54. Attente Moyenne: 81 ms vs 98 ms
  • 56. Débit (Throughput): 22 Tps vs 18 Tps
  • 62. Attente Moyenne: 1109 ms vs 1260 Tps21
  • 63. Conclusions On remarque que l’optimisation de JBoss EAP 5.1 à jouer son rôle pour augmenter les performances et même si qu’on a pu atteindre que 10% à 12% de d’efficacité avec une simple application et un environnement minime, avec d’autres environnement plus puissants et des applications plus complexes le gain de performances peut aller jusqu’à 30% ! Une bonne pratique de test de performances est que vous devriez toujours essayer de faire différents cas de tests ainsi que plusieurs régalages puis comparer les résultats obtenus et choisissez la plus adéquate à vos besoins !22