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ı cat
arka 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 ( up
FIFO'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 ( ssh
ve python
) tekrar çalıştırın.
Bir şeyler ters giderse, -v
daha fazla hata ayıklama çıktısı almak için SSH bayrağını kullanın.