10 mai 2011

Reduction des temps de latence OpenHR v7

Sur AIX le temps de latence OpenHR est trop long (de l'ordre de 500ms). Ceci est vérifiable en consultant le fichier stop_watch.log.

Un patch a été créé par l'éditeur pour shunter un "ping" consommateur. Pour en disposer il faut être en release 7.17.4 minimum.

Le bug étant spécifique à AIX la mise en service du shunt est à faire manuellement. Pour cela, ajouter la propriété suivante dans la ligne de commande de lancement d'openhr (script $SIGACS/openhr/bin/dispatcher.sh) : -Dcom.hraccess.dispatcher.skip_bhr_ping=true.

Exemple de ligne de commande :

nohup $_RUNJAVA -classpath $OPHRS_HOME/bin/bootstrap.jar -Dcom.hraccess.dispatcher.skip_bhr_ping=true -Dhr.bootjars.dirs=$OPHRS_HOME/lib/boot -Dhr.jars.dirs=$OPHRS_HOME/lib com.hraccess.wutil.WAppLauncher com.hraccess.dispatcher.OpenHRServer $1 $2 $3 $4 $5 $6 $7 $8 $9 1>/dev/null 2>&1 &

Autre option plus radicale : faites corriger le paramétrage du système d'exploitation. Car en tout état de cause, ce fonctionnement est lié à des paramètres AIX : tcp_nodelayack , tcp_nodelay et tcp_nagle_limit (merci Alban pour l'information).

The TCP_NODELAYACK option prompts TCP to send an immediate acknowledgement, rather than the usual 200 ms delay. Sending an immediate acknowledgement might add a little more overhead, but in some cases, greatly improves performance.

Ce tcp_nodelayack peut être fixé à 1 pour enlever le délai habituel de 200ms pour l'accusé de reception TCP.

Pour lire la valeur de ces paramètres, faites :
no -a | egrep 'tcp_nodelay|tcp_nagle_limit


2 commentaires:

  1. Suite à communication Hot Line, il ressort que le paramètre "com.hraccess.dispatcher.skip_bhr_ping" du serveur OpenHR permet (par effet de bord) de contourner (partiellement) les défauts d'un paramétrage AIX non adapté au fonctionnement du serveur OpenHR. Toutefois des tests conduisent à conseiller de conserver le fonctionnement par défaut du serveur OpenHR et à positionner le paramètre système "tcp_nodelayack" à '1'.

    Pour information un essai de démarrage de HRaSpace v7 avec le parametre tcp_nodelayack à zéro donne :
    catalina.2011-05-25.out:INFO: Server startup in 455983 ms
    catalina.2011-05-26.out:INFO: Server startup in 435827 ms

    Une fois ce paramètre positionné à '1' :
    catalina.2011-05-24.out:INFO: Server startup in 202973 ms
    catalina.2011-05-25.out:INFO: Server startup in 256921 ms

    RépondreSupprimer
  2. Some news again ... Ce parametre skip_bhr_ping provoque des instabilités sur AIX - à proscrire donc... mais apporte un bénéfice (modique) sur les autres systèmes (Linux, HPUX, SUN).

    RépondreSupprimer