Vous êtes sur la page 1sur 23

| 

 


] 
P 
 
  
g  
  



     
   M

  !""#"

 $% &   &% '( ) "  #%


&*" " + "  *" *%, -  .
 
   
 

 /&&"""&%&!&% 


     

 -"%&0%#1  2)34"5&&


./6 /

M
Plan
1. Introduction à la mesure de performance
2. Stress Test avant tuning
a. Cas de test
b. Dimensionnement (serveur)
c. Résultats
3. Optimisation de JBoss EAP 5.1
a. Supprimer le non utilisé par votre application
b. Configuration de log4j
c. Configuration de la mémoire JVM

d. Configuration de la data source
e. Configuration de la connexion HTTP
4. Stress Test après tuning
5. Conclusion
1. Introduction à la mesure de performance

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 | 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
| | disponible sous le répertoire outillage du CD de formation.
2. Stress Test avant tuning
Présentation
       


 


 le maximum le   

  cƞest le temps écoulé pendant que lƞutilisateur clique sur un
bouton et la page (résultat) sera affichée par le navigateur.


  !

 le maximum "
 (  ).

#"
$  %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).
2. Stress Test avant tuning
a. 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 r &&' (

)*+*+&, & -
En accédant à cette adresse le client (browser) envoie au serveur JBoss une
requête ./



(    utilisateur qui fera ++ invocations consécutives.
( 01  utilisateurs qui feront au même instant ++ invocations
consécutives,.
( 21 0 utilisateurs qui feront au même instant ++ invocations
consécutives.
2. Stress Test avant tuning
b. Dimensionnement (serveur)

 3Intel(R) Core (TM)2 Duo CPU - 2.00GHz (32 Bits)


 
4
53 Go
 

$67%2 Go
   ]ast Ethernet 10/100 Mb/s

 6418!

 Red Hat Enterprise Linux Server release 5.4
version du kernel: 2.6.18-164.el5
2. Stress Test avant tuning
c. Résultats:
    50 secondes
  
- "
$  %10 Tps
- 0%
-  4 98 ms

 01 
- "
$  %18 Tps
- 0% 
-  4 260ms

 01 
- "
$  % 19Tps
- 0%
-  4 1260 ms
3. Optimisation de JBoss EAP 5.1
a. 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.

   9

   1   


   

     95


3. Optimisation de JBoss EAP 5.1
 6
  

  8


| 0&2
 

( 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

 6
  

  8

|3 
 

- deploy/juddi-service.sar

 6
  

  8

    33 
 

- deploy/ uuid-key-generator.sar
3. Optimisation de JBoss EAP 5.1
 6
  

  8

|6$|  6
%:

6
 

( 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.xml


 

- conf/jbossts-properties.xml

  
 

<property name="com.arjuna.ats.jta.recovery.XAResourceRecovery.JBMESSAGING1"
value="org.jboss.jms.server.recovery.MessagingXAResourceRecovery;java:/DefaultJMSProvider"/>
</properties>
3. Optimisation de JBoss EAP 5.1
 6
  

  8

| 
:
 

- deploy/mail-service.xml
- deploy/mail-ra.rar

 6
  

  8

| 6
:
 

- deploy/schedule-manager-service.xml
- deploy/scheduler-service.xml

 6
  

  8

.4 

 :
 

- deploy/hsqldb-ds.xml

 6 
  4 

- deployers/bsh.deployer

 

 
 9$.4 %

6
 deploy/hdscanner-jboss-beans.xml
3. Optimisation de JBoss EAP 5.1
 6
  

  8

| 76$| 7"
%:
 

- conf/jax-ws-catalog.xml
- conf/props/jbossws-roles.properties
- conf/props/jbossws-users.properties
- depolyers/jbossws.deployer

 6
  

  8  ; , | 6:

 

- deployers/seam.deployer 
- deployers/webbeans.deployer
- deployer/admin-console.war

 6
  8 <"
 8

 
   <

      6
 

- deployer/admin-console.war
3. Optimisation de JBoss EAP 5.1
 6
  

  8


 & ":

6
 

- deploy/jacorb.properties
- deploy/ iiop-service.xml
- deployers/ejb3.deployer/META-IN]/ ejb3-iiop-deployers-jboss-beans.xml
- lib/jacorb.jar


 conf/jndi.properties

 

java.naming.factory.initial=org.jboss.iiop.naming.ORBInitialContext]actory
 

java.naming.factory.initial=org.jnp.interfaces.NamingContext]actory
3. Optimisation de JBoss EAP 5.1
 6 
 8 
$ 
      


 9 

 %

- deployers/deploy/jboss-xa-jdbc.rar
- deploy/xnio-provider.jar

 

 

  8 <"
:6
 

- ./deploy-hasingleton
- ./farm
- deploy/cluster 
Editer : conf/bootstrap/profile.xml

Supprimer ou commenter ça:

<property name="farmURIs">
<list elementClass="java.net.URI">
<value>${jboss.server.home.url}farm</value>
</list>
</property>
3. Optimisation de JBoss EAP 5.1
 6 
 8 
$ 
      


 9 

 %

- deployers/deploy/jboss-xa-jdbc.rar
- deploy/xnio-provider.jar

 

 

  8 <"
:6
 

- ./deploy-hasingleton
- ./farm
- deploy/cluster 
Editer : conf/bootstrap/profile.xml

Supprimer ou commenter ça:

<property name="farmURIs">
<list elementClass="java.net.URI">
<value>${jboss.server.home.url}farm</value>
</list>
</property>
3. Optimisation de JBoss EAP 5.1
b. 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  &="( >=!puis remplacer tout le contenu du root (<root>


ƦƦƦƦ.. </root>).

 ? 

<root>
<priority value="ERROR"/>
<appender-ref ref="]ILE"/>
</root>
3. Optimisation de JBoss EAP 5.1
c. Configuration de la mémoire JVM:

å
  
"@|AB6 

 "
&   

(C'
<): taille (en Mo) minimum de la mémoire alloué: min-heap
(C!'
<): taille (en Mo) maximum de la mémoire alloué: max-heap

Xms 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Ʀ

(CC! 6
< : Il est recommander que cette valeur soit le 1/4 de max-heap.
3. Optimisation de JBoss EAP 5.1
d. Configuration de la data source:

Editer le fichier data source !!!!!(!accompagné


avec lƞarchive de votre application (war), La modification de ces
deux paramètres peuvent optimiser la connexion avec la base:

- 
((
<Cƞest le nombre initial de connexions à la BD
qui peuvent être gardées. 
- !((
<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 SGBD
3. Optimisation de JBoss EAP 5.1
e. Configuration de la connexion HTTP:
Éditer le fichier 4&="," &  !, les
paramètres les plus importants sont :

( ! Il sƞagit du nombre maximum de threads (nombre


dƞutilisateur qui peuvent exploiter en parallèle votre application).
(  si le nombre dƞutilisateurs concurrents dépassent le
nombre maximum autorisé ! , lƞattribut  
représente la taille dƞune file dƞattente permettant de tenir jƞusquƞau
nombre   de threads en attente  pour traitement.
(  
 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).

!

<Connector protocol="HTTP/1.1" port="8080"


address="${jboss.bind.address}"
connectionTimeout="20000" redirectPort="8443" ! DE+E
 DE++E 
 DE E/>
4. Stress Test après tuning
Résultat (avec les mêmes conditions précédentes)

    39 secondes


  
- "
$  %0vs. 10 Tps
- +F
-  4 *vs 98 ms

 01  
- "
$  %00vs 18 Tps
- +F
-  4 02+ vs 260 ms

 21 
- "
$  % 00vs 19 Tps
- +F
-  4 +Gvs 1260 Tps
5. Conclusion
On remarque que lƞoptimisation de | à jouer son rôle pour
augmenter les performances et même si quƞon a pu atteindre que +Fà 0Fde
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ƞà 2+F!

Une bonne pratique de test de performances est que vous devriez toujours essayer
de faire 
  ainsi que 
    puis comparer les
résultats obtenus et choisissez la plus adéquate à vos besoins !
 
!"   !  
!"   # 
!"   $ %

     


g