Ce chapitre donne des informations utiles sur le réglage et la performance dans le déploiement d'Instant Messaging en configuration de groupe et sur une opération GC (garbage collection) optimisée, dans les rubriques suivantes :
Information à utiliser avec le Sun Java Communications Suite 5 Deployment Planning Guide .
En déploiement sur serveurs groupés, tous les serveur Instant Messaging doivent avoir la même configuration.
Utiliser J2SE version 5 pour démarrer le serveur d'Instant Messaging, un programme plus performant dont l'ergonomie évite la saisie de commandes de réglages. Vous trouverez de plus amples informations concernant l'utilisation de cette version de Java dans les documents suivants :
Le serveur Instant Messaging utilise le paramètre iim.jvm.maxmemorysize dans iim.conf pour définir la taille maximum du tas JVM à allouer. La valeur par défaut de ce pramètre est 256 MB, mais un important déploiement actif d' Instant Messaging nécessite plus de mémoire. La mémoire à allouer aux différents serveurs Instant Messaging du groupe dépend du nombre d'utilisateurs actifs concurrents à approvisionner. Chaque serveur Instant Messaging du groupe a besoin de 256 MB, avec 65 KB pour chaque utilisateur connecté/actif pour des utilisations quotidiennes comme suit :
deux mises à niveau de présence ;
cinq conversations d'une durée de 10 minutes ;
une conférence multiutilisateur d'une durée de 15 minutes ;
une connexion et une déconnexion.
Une charge supplémentaire par utilisateur, les services Instant Messaging comme le transfert d'informations ou de fichiers, et les fonctions comme les filtres de messagerie, l'archivage ou SSL consomment plus de mémoire. Faire le profil de charge d'une activité type par utilisateur avant de déployer Instant Messaging en situation de production. Contacter l'assistance technique de Sun pour plus d'informations sur l'étude de charge d'un déploiement Instant Messaging.
Les options de configuration d'Instant Messaging permettent d'adapter la taille et le comportement des pools de threads utilisées pour satisfaire les requêtes de client à serveur et de serveur à serveur. Combinées à des ports de service associés, les pools de threads peuvent améliorer le débit d'un serveur Instant Messaging.
Nom de l'option |
Description |
Valeur par défaut |
---|---|---|
iim_server.maxthreads |
Nombre maximal de threads du pool de threads par défaut. |
20 |
iim_server.threadpool |
Liste de pools de threads indépendants. |
Utilisent tous la valeur du pool de threads par défaut. |
iim_server.threadpool.capacity |
Capacité(*) du pool de threads par défaut. |
10 * nombre maximal de threads |
iim_server.threadpool.aaa.maxthreads |
Nombre maximal de threads du pool de threads nommé aaa : maxthreads(aaa) |
4 |
iim_server.threadpool.aaa.capacity |
Capacité du pool de threads nommé aaa. |
10 * nombre maximal de threads(aaa) |
Tableau 4–4 Pools de threads définis pour Sun Java Communications Suite
Nom |
Utilisation |
---|---|
s2s-in |
Toutes les communications entrantes de serveur à serveur. Si le port autorise les communications de serveur à serveur, ce pool de threads est utilisé. |
s2s-out |
Toutes les communications sortantes de serveur à serveur. Si le port autorise les communications de serveur à serveur, ce pool de threads est utilisé. |
s2s |
Toutes les communications de serveur à serveur ; combinaison de s2s-in et de s2s-out. |
Vous pouvez spécifier et utiliser des pools de threads définis avec l'unique port du service d'un serveur associé, comme décrit dans Configuration des ports de service. Modifier les configurations de thread et de port dans iim.conf. Redémarrer le serveur après toute modification dans la configuration de thread et de port.
Lorsque la capacité d'un pool de threads est dépassée, un message d'erreur standard s'affiche. Toute requête supplémentaire sera refusée par le serveur Instant Messaging jusqu'à ce que le nombre de requêtes soit inférieur à la capacité du pool de threads. Si cette situation se produit dans un environnement de pool de serveurs, les opérations suivantes peuvent être nécessaires :
augmentation de la capacité du pool de threads ;
spécification d'un pool de threads défini ;
ajustement de la valeur maxthreads du pool de threads ;
utilisation du port de service d'un serveur uniquement ;
augmentation de la mémoire ;
répartition plus rationnelle des utilisateurs au sein du pool de serveurs.
!s2s thread pool iim_server.threadpool=s2s-in iim_server.threadpool.s2s-in.maxthreads=5 |
Cette section décrit les différentes options existantes de configuration des ports de service.
Option |
Définition |
Valeur par défaut |
---|---|---|
iim_server.useport |
Ouverture des ports normaux (permet l'utilisation de StartTLS). |
true |
iim_server.usesslport |
Ouverture des ports SSL (TLS non négociable) |
false |
iim_server.usemuxport |
Ouverture des ports du multiplexeur |
true |
iim_server.port |
Liste des ports normaux |
5269 |
iim_server.sslport |
Liste des ports SSL |
5270 |
iim_mux.serverport |
Liste des ports du multiplexeur |
45222 |
iim_server.port.port .sndbuf |
Taille du tampon send du socket |
aucun |
iim_server.port.port .rcvbuf |
Taille du tampon recv du socket |
aucun |
iim_server.port.port .interface |
Liste des interfaces réseau spécifiques auxquelles se lier |
aucune (signifie n'importe quelle interface) |
iim_server.port.port .protocol |
Liste des protocoles autorisés sur ce port (client, serveur, composant, pair) |
tous/un protocole spécifique |
iim_server.port.port .nodelay |
Active l'algorithme Nagles |
false |
Il est possible d'améliorer la capacité de traitement d'un port de service en ajustant la taille des tampons d'envoi ou de réception du port.
iim_server.port = 5269, 45269, 15222 iim_server.port.5269.protocol = server iim_server.port.45269.protocol = peer, component iim_server.port.45269.sndbuf= 512000 iim_server.port.45269.recvbuf= 512000 iim_server.port.15222.protocol = client |
(Référence : 6279277) En raison des différences de traitement de la procédure de garbage collection existant entre les versions 1.4.2 et 1.5 de JRE, vous risquez de ne pas bénéficier des performances optimales si vous utilisez le garbage collector par défaut avec la version 1.4.2 sur l'hôte du serveur. Pour résoudre ce problème, vous pouvez effectuer une mise à jour vers la version 1.5 de JRE ou inclure l'option de ligne de commande ci-après lorsque vous appelez le serveur :
-XX:+UseParallelGC |
Pour plus d'informations sur la fonction de garbage collection JRE, reportez-vous aux documents suivants :