AXOPEN

JBoss 7 – EAP 6- Optimisation du serveur en supprimant les subsystem inutiles

L’objectif de cet article est de montrer comment optimiser le serveur d’application Jboss EAP 6.2 (ou jboss 7.x).

Configuration de Jboss (Optimisation)

La configuration de Jboss se trouve intégralement dans le fichier standalone.xml dans le répertoire conf. Le fichier est structuré de la manière suivante: Une balise serveur, une balise profile et enfin un ensemble de subsytem. Ce sont ces subsystem qui nous intéressent. Chaque subsystem correspond à « une fonctionnalité » de JBoss. Dans la version fournie par défaut par JBoss, un certain nombre de fonctionnalités (subsystem) sont actives. Assez fréquemment, tous les subsystems ne sont pas nécessaires pour déployer votre application. Nous allons voir ici que les désactiver peut avoir un inpact positif sur les performances ainsi que sur la sécurité. 

Suppression de subsytem inutiles

Un moyen d’optimiser est de supprimer tous les subsystems qui ne sont pas nécessaires à votre utilisation du serveur. Malheureusement souvent oubliée, cette étape permet un gain de performance substantiel en allégeant le serveur et en plus, ceci limite les bugs et les risques de sécurité (par exemple, supprimer la console de management si vous ne vous en servez pas permet d’alleger le serveur Jboss et de gagner en sécurité).

Comment supprimer un subsystem?

Tout simplement en supprimant la balise XML qui correspond au subsystem et en supprimant la ligne extension correspondante. C’est tout et c’est extrèmement facile.

Gain de performances par suppression de subsystem

Pour tester les gains espérés, nous avons dans cet article supprimé, un par un les subsystem et mesuré le temps de démarrage ainsi que l’empreinte mémoire à vide.

Les temps et les taille obtenues ici sont bien sur anecdoctiques mais, ceci donne une idée des gains qui peuvent être réalisés si vous supprimez les systèmes qui ne vous servent pas! 

  • En démarrant le jboss ha à vide on obtient une taille en RAM de 280 Mo.
  • En supprimant le subsystem management 268,8 Mo démarrage 3128 ms.
  • En supprimant le subsystem datasource  263,4 Mo démarrage en 3091 ms.
  • En supprimant le subsystem cache infinispan 258 Mo démarrage 3080 ms.
  • En supprimant le subsystem webservices 243,2 Mo démarrage en 3013 ms.
  • En supprimant le subsystem remoting 223 Mo démarrage en 2934 ms.
  • En supprimant le subsystem jmx   223 Mo démarrage en 2434 ms.
  • En supprimant le subsystem jGroups 220 Mo démarrage en 2100 ms.
  • En supprimant le subsystem modCluster  220 Mo  démarrage en 2100 ms.
  • En supprimant le subsystem mail 220 Mo démarrage en 2120 ms.
  • En supprimant le subsystem weld 217 Mo  démarrage en 2150 ms.
  • En supprimant le subsystem logging 215 Mo démarrage en 2047 ms.
  • En supprimant le subsystem ejb3 199 Mo démarrage en 1933 ms.

​Voilà, l’objectif de cet article n’est bien sur pas de donner des temps de références mais bien de montrer qu’il est possible d’alléger votre serveur d’application. Donc n’hésitez pas à vous poser la question de la nécessité de chaque subsystem.