![[Linux]](../images/linux.gif)
Optimisation des servlets SIP pour Linux
Conseils pour l'optimisation des servlets SIP lors de l'exécution sur un noyau Linux 2.6.
Pourquoi et quand exécuter cette tâche
Un servlet SIP (Session Initiation Protocol) en cours de chargement peut retransmettre des messages ou abandonner des appels. Les files d'attente du connecteur UDP risquent de se remplir. Une vérification de la récupération de place en mode prolixe peut montrer que les délais de récupération de place sont assez longs, par exemple, de 0,5 à 1,5 secondes. La cause de ce problème est que le pilote Ethernet, le système d'exploitation Linux®, WebSphere® Application Server ou toute combinaison de ces éléments n'est pas optimisée pour des applications SIP. Vous pouvez appliquer les niveaux d'optimisation suivants.
Remarque : Les recommandations ci-dessous ont été testées sur Red Hat Enterprise Linux 4 uniquement et sont fournies dans l'état sans aucune garantie implicite.
Procédure
- Optimisation du pilote Ethernet Linux.
L'optimisation du pilote Ethernet Linux commence par la sélection du meilleur pilote Ethernet. Par exemple, le pilote recommandé pour les composants blade HS20 est le pilote tg3-3.43b (ou de niveau ultérieur). Les commandes shell suivantes ont été utilisées pour optimiser le pilote Ethernet du noyau Linux :
Certaines de ces options devront probablement être modifiées en fonction du pilote Ethernet installé./sbin/ifconfig eth0 txqueuelen 2000 /sbin/ifconfig eth1 txqueuelen 2000 ethtool -s eth0 autoneg off speed 1000 duplex full ethtool -A eth0 autoneg off rx on tx on ethtool -C eth0 adaptive-rx off adaptive-tx off rx- usecs 20 rx-frames 5 tx-usecs 60 tx-frames 11 ethtool -G eth0 rx 511 rx-jumbo 255 tx 511
- Optimisation du noyau Linux. L'optimisation du noyau Linux utilise les commandes suivantes :
Cette configuration risque de ne pas être optimale pour une application donnée et vous risquez de devoir ajuster la configuration pour obtenir les meilleures performances. Vous pouvez, cependant, utilisez ces valeurs comme point de départ.echo 16777216 > /proc/sys/net/core/rmem_max echo 2097152 > /proc/sys/net/core/rmem_default echo 16777216 > /proc/sys/net/core/wmem_max echo 2097152 > /proc/sys/net/core/wmem_default echo 10000000 > /proc/sys/net/core/optmem_max echo 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_rmem echo 4096 87380 16777216 > /proc/sys/net/ipv4/tcp_wmem echo 8388608 8388608 8388608 > /proc/sys/net/ipv4/tcp_mem echo 400 > /proc/sys/net/unix/max_dgram_qlen echo 400 > /proc/sys/net/core/message_burst echo 2800 > /proc/sys/net/core/mod_cong echo 1000 > /proc/sys/net/core/lo_cong echo 200 > /proc/sys/net/core/no_cong echo 2900 > /proc/sys/net/core/no_cong_thresh echo 3000 > /proc/sys/net/core/netdev_max_backlog
- Optimisation de SIP pour WebSphere
Application Server. L'optimisation de SIP pour WebSphere
Application Server se fait à l'aide des étapes suivantes :
- Créez un groupe d'unités d'exécution distinct pour le conteneur de servlets SIP. Suivez ce chemin dans la console d'administration :
- Cliquez sur Serveurs > Types de serveurs > Serveurs d'applications WebSphere > nom_serveur.
- Sous Propriétés supplémentaires, cliquez sur Pools d'unités d'exécution > Nouveau.
- Dans la zone Nom, entrez SipContainer.
- Dans les zones Taille minimale et Taille maximale, entrez 15. Ces valeurs devraient convenir pour la plupart des applications.
- Cliquez sur OK.
- Créez des propriétés personnalisées pour le conteneur de servlets SIP. Suivez ce chemin dans la console d'administration :
- Cliquez sur Serveurs > Types de serveurs > Serveurs d'applications WebSphere > nom_serveur.
- Cliquez sur Conteneur SIP.
- Sous Propriétés supplémentaires, cliquez sur Propriétés personnalisées > Nouveau.
- Dans la zone Nom, entrez javax.sip.max.object.pool.size.
- Dans la zone Valeur, entrez 1000.
- Cliquez sur OK.
- Dans la zone Nom, entrez max.tu.pool.size.
- Dans la zone Valeur, entrez 1000.
- Cliquez sur OK.
- Dans la zone Nom, entrez com.ibm.sip.sm.lnm.size.
- Dans la zone Valeur, entrez 8.
- Cliquez sur OK.
- Créez des propriétés personnalisées pour le canal SIPUDP si UDP (User Datagram Protocol) est le transport principal du trafic SIP. Suivez ce chemin dans la console d'administration :
- Cliquez sur Serveurs > Types de serveurs > Serveurs d'applications WebSphere > nom_serveur.
- Cliquez sur Conteneur SIP > Chaîne de transport > SIPCInboundDefaultUDP > Canal des communications entrantes UDP (UDP1).
- Sous Propriétés supplémentaires, cliquez sur Propriétés personnalisées > Nouveau.
- Dans la zone Nom, entrez receiveBufferSizeSocket.
- Dans la zone Valeur, entrez 3000000.
- Cliquez sur OK.
- Dans la zone Nom, entrez sendBufferSizeSocket.
- Dans la zone Valeur, entrez 3000000.
- Indiquez les propriétés générales du conteneur de servlets SIP. Suivez ce chemin dans la console d'administration :
- Cliquez sur Serveurs > Types de serveurs > Serveurs d'applications WebSphere > nom_serveur.
- Entrez la valeur du nombre maximale de sessions d'application. Celle-ci peut être calculée de la façon suivante : Délai d'attente maximal des appels ou expiration de la session x Débit des appels x Facteur de sécurité.
- Entrez le nombre maximal de messages par valeur de période moyenne. Celui-ci peut être calculé de la façon suivante : Délai d'attente maximal des appels ou expiration de la session x Débit maximal des messages SIP x Facteur de sécurité.
- Entrez la valeur de la taille maximale de la file d'attente de répartition. Celui-ci peut être calculé de la façon suivante : Débit maximal des messages SIP x Temps d'attente maximal dans le traitement SIP x Facteur de sécurité.
- Définissez le pool d'unités d'exécution sur le pool d'unités d'exécution du conteneur SIP nouvellement créé (sur le nom qui apparaît : "SipContainer").
- Ajustez la règle de récupération de place de la machine JVM. Suivez ce chemin dans la console d'administration :
- Cliquez sur Serveurs > Types de serveurs > Serveurs d'applications WebSphere > nom_serveur.
- Sous Infrastructure du serveur, cliquez sur Gestion des processus et Java > Définition des processus.
Cliquez sur Contrôle.
- Sous Propriétés personnalisées, cliquez sur Machine virtuelle Java.
- Dans la zone des Arguments JVM génériques, entrez la valeur suivante sur une ligne continue : "-Xmn150m -Xgcpolicy:gencon -Xgc:scvNoAdaptiveTenure,scvTenureAge=1,stdGlobalCompactToSatisfyAllocate -Xcompactexplicitgc -XX:MaxDirectMemorySize=256000000".
Pratiques recommandées:
- Vous pouvez ajouter une valeur de 1500 Mo aux zones Taille de pile initiale et Taille de pile maximale.
- Il est recommandé d'activer l'option de Récupération de place en mode prolixe pendant les tests de performances ou les opérations d'optimisation.
- Si votre application alloue des objets dont la taille est supérieure à 6 kilooctets, vous avez probablement intérêt à réserver une zone d'objet LOB (LOA) dans la pile. Pour ce faire, ajoutez l'argument JVM -Xloaminimum0.xy, où xy indique le pourcentage de la pile à réserver aux objets LOB. Pour obtenir des informations sur les arguments JVM, voir le document Java Diagnostics Guide 6.
- Créez un groupe d'unités d'exécution distinct pour le conteneur de servlets SIP. Suivez ce chemin dans la console d'administration :


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsip_tunelinux
Nom du fichier : tsip_tunelinux.html