Bunu kendim yapmaya çalışıyordum ve bunu buldum. Muhtemelen daha basit bir yol var, ama bulduğum şey bu.
İlk olarak, kıyaslama programının SSH bağlantısı üzerinden iletişim kurmasını sağlamak için kullanılacak boruları hazırlayın.
$ mkfifo /tmp/up /tmp/down
Ardından, herhangi bir uzak komut yürütmeden ControlMaster modunda bir bağlantı oluşturun. Bu, ana bilgisayarla etkileşimli olarak kimlik doğrulamamıza izin verir. Bağlantı kurulduktan sonra, SSH burada ön planda "asılır".
$ ssh $HOST -N -M -S /tmp/control
Paralel bir terminalde, uzaktan kumandayı catarka planda çalıştırın . Gecikmesini ölçeceğimiz yankı sunucumuz olacak. Girişler ve çıkışlar FIFO'lara bağlanır:
$ ssh $HOST -S /tmp/control cat </tmp/up >/tmp/down &
Ve sonra küçük bir programı kıyaslayın ( upFIFO'ya bir bayt gönderin , FIFO'dan bir bayt alın down):
$ 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
Ölçüm, gidiş-dönüş gecikmesini açıkça göstermektedir. Denemeyi tekrarlamanız gerekiyorsa, son iki komutu ( sshve python) tekrar çalıştırın.
Bir şeyler ters giderse, -vdaha fazla hata ayıklama çıktısı almak için SSH bayrağını kullanın.