J'essayais de le faire moi-même et j'ai trouvé ça. Il existe probablement un moyen plus simple, mais c'est ce que j'ai trouvé.
Tout d'abord, préparez les tuyaux qui seront utilisés pour faire communiquer le programme d'analyse comparative via la connexion SSH.
$ mkfifo /tmp/up /tmp/down
Établissez ensuite une connexion en mode ControlMaster sans exécuter de commande à distance. Cela nous permet de nous authentifier de manière interactive avec l'hôte. Une fois la connexion établie, SSH se "suspend" juste ici au premier plan.
$ ssh $HOST -N -M -S /tmp/control
Dans un terminal parallèle, exécutez remote cat
en arrière-plan. Ce sera notre serveur d'écho dont nous mesurerons la latence. Les entrées et sorties sont connectées aux FIFO:
$ ssh $HOST -S /tmp/control cat </tmp/up >/tmp/down &
Et puis comparer un petit programme (envoyer un octet à up
FIFO, recevoir un octet de down
FIFO):
$ python -m timeit -s 'import os' \
'os.write(3, "z"); z=os.read(4, 1); assert z=="z", "got %s" % z' \
3>/tmp/up 4</tmp/down
10 loops, best of 3: 24.6 msec per loop
La mesure montre évidemment la latence aller-retour. Si vous devez répéter l'expérience, exécutez à nouveau les deux dernières commandes ( ssh
et python
).
Si quelque chose semble mal se passer, utilisez l' -v
indicateur SSH pour obtenir plus de sortie de débogage.