खुद ऐसा करने की कोशिश कर रहा था और इसी के साथ आया था। संभवत: एक सरल तरीका है, लेकिन यह वही है जो मैं लेकर आया हूं।
सबसे पहले, पाइप तैयार करें जिसका उपयोग एसएसएच कनेक्शन के माध्यम से बेंचमार्किंग प्रोग्राम को संवाद करने के लिए किया जाएगा।
$ mkfifo /tmp/up /tmp/down
फिर किसी दूरस्थ कमांड को निष्पादित किए बिना कंट्रोलमास्टर मोड में एक कनेक्शन स्थापित करें। यह हमें अंतःक्रियात्मक रूप से मेजबान के साथ प्रमाणित करने की अनुमति देता है। कनेक्शन स्थापित होने के बाद, SSH यहां अग्रभूमि में "लटका" देगा।
$ ssh $HOST -N -M -S /tmp/control
एक समानांतर टर्मिनल में, cat
पृष्ठभूमि में रिमोट निष्पादित करें । यह हमारा इको सर्वर होगा जिसकी विलंबता हम मापेंगे। इनपुट और आउटपुट फीफो से जुड़े हैं:
$ ssh $HOST -S /tmp/control cat </tmp/up >/tmp/down &
और फिर एक छोटा प्रोग्राम बेंचमार्क करें ( up
FIFO को बाइट भेजें , 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
माप स्पष्ट रूप से गोल-यात्रा विलंबता को दर्शाता है। यदि आपको प्रयोग दोहराने की आवश्यकता है, तो अंतिम दो कमांड ( ssh
और python
) फिर से चलाएं ।
यदि कुछ गलत लगता है, -v
तो अधिक डिबगिंग आउटपुट प्राप्त करने के लिए SSH ध्वज का उपयोग करें ।