Il est recommandé de prendre en compte la question de performance dès le début du projet. Ceci permet de faire les bons choix pour limiter le poids des pages, pour utiliser au mieux les caches portlet et pour prévoir une phase d'optimisation des performances avant la mise en oeuvre du service. Nous allons passer en revue les points d'optimisation possibles.
Performances du navigateur Web
De mauvaises performances peuvent venir du navigateur lui-même. L'origine la plus fréquente est le poids des pages. L'utilisation des feuilles de style CSS contribue à réduire ce poids. Le poids des images doit aussi être contrôlé : certains outils, comme Photoshop, permettent des taux de compression très important en utilisant l'option " sauvegarger pour le web ". L'usage de Javascript peut aussi réduire les performances. C'est en particulier le cas dans le back-office lorsque la taille de l'arbre des catégories dépasse le millier de termes. Cette limite est indicative et dépend des performances du poste client. Enfin la configuration du navigateur peut avoir un impact sur les performances. Par exemple sur IE : Outils > Option Internet > Fichiers temporaires > Paramètres > Vérifier s'il existe une version des pages > Choisir "Automatiquement" plutôt que "A chaque visite".
Test : observer le temps d'affichage d'une préalablement sauvegardée localement.
Performances du réseau
Deux paramètres du réseaux sont importants : le débit et la latence. Le débit s'exprime en bits/seconde. Il s'agit d'une valeur théorique qui ne tient pas compte de l'overhead dû au protocole. Dans la pratique, on peut estimer le débit réel en comptant 10 bits pour 1 octet. Le poids des pages permet de connaître le maximum de pages pouvant être servies sur le réseau, mais attention : le réseau est déjà utilisé pour d'autres usages. La mesure de la bande passante utilisée est indispensable pour dimensionner correctement le débit. La latence est une caractéristique distincte du débit : c'est le temps minimum pour effectuer un aller et retour entre deux points du réseau. La latence est forcément longue si les deux points sont éloignés. La mise en oeuvre de réplicats JCMS permet à des sites très distants de disposer chacun de la latence de leur réseau local.
Tests : utilitaire ping pour la latence ; mesure de l'accès à de très gros fichiers pour le débit (à répéter à des horaires différents).
Performance du serveur d'application
Le serveur d'application doit être configuré pour optimiser les performances. Nous ne détaillerons pas le paramétrage qui est très dépendant de la plate-forme mise en oeuvre. Nous indiquons les principaux points à prendre en compte.
- Machine virtuelle Java : allouer une taille suffisante ; positionner les paramètres d'optimisation adaptés (mode serveur)
- Serveur d'application : réduire la fréquence de vérification de la date des fichiers JSP (par défaut très fréquente pour la version de développement, passer à plusieurs minutes pour la version opérationnelle) ; allouer le maximum de threads permises par la configuration de la machine
- Machine : la taille mémoire, la taille mémoire cache du processeur et la vitesse du CPU sont les principaux critères ; pour profiter d'une architecture multi-processeur, il est nécessaire de répliquer la webapp ; la (les) carte(s) réseaux peuvent être un facteur limitatif ; l'accès disque a aussi un impact. Si le CPU est généralement le facteur limitant les performances, il faut savoir qu'un élément défaillant, comme une carte réseau mal configurée, peut devenir le facteur limitant.
Test : mesurer le taux de requêtes par seconde sur des pages statiques ou des JSP non gérés par Jalios JCMS.
Performance de Jalios JCMS
Les performances sont liées à la complexité de traitement des pages. Les caches des portlets permettent d'optimiser les performances. Deux principaux types de cache sont disponibles :
- Caches globaux - gérés en mémoire, ils sont partagés entre tous les utilisateurs ; ces cache sont très performants mais ne peuvent être utilisées sur les portlet personnalisées ou affichant des informations en tenant compte de droit d'accès
- Caches session - gérés sur disques, ils sont propres à chaque session utilisateur ; ils améliorent les performances des portlets personnalisées ou tenant compte de droits d'accès.
Les portlets sont organisées en hiérarchie. Il est possible d'utiliser différents types de cache dans une même hiérarchie : par exemple un cache session sur la page d'accueil, un cache serveur sur l'en-tête et sur la colonne de navigation, et à nouveau un cache session sur la partie centrale. Il est recommandé, lors de la conception de réunir dans une même portlet ligne ou colonne les parties personnalisées ou pas afin de pouvoir utiliser au maximum les caches serveur.
Pour plus d'informations sur la configuration des caches de portlet de JCMS, consulter l'article Paramétrage des caches des portlets.
Test : mesurer le taux de requêtes par seconde avec un outil sachant gérer les sessions utilisateur.



