2018年5月24日 星期四

測量 ssh session 的 latency

目前是使用本機的 virtualbox 做為開發機,而常在思考是否要改用 google vm(台灣彰化機房) 或 linode (日本機房) 做為開發機。之前都是打開 vim 看看打字的體感速度慢多少,但其實沒有個數字都不太準確。今天在 serverfault 找到了答案

在這裡以 MAC 為例,windows 的朋友可能要立用 docker 或 virtualbox 來建立 linux 的環境來測量。

先設定要連線的主機
HOST=root@remote-address

再下指令進行測試

mkfifo /tmp/up /tmp/down
ssh $HOST -N -M -S /tmp/control &
ssh $HOST -S /tmp/control cat < /tmp/up > /tmp/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
rm -f /tmp/up /tmp/down
kill $(jobs -p)

台北 hinet 測試結果:
  • Localhost VirtualBox: 0.508ms
  • Linode Tokyo (JP): 45ms
  • Linode Fremont (US): 146ms
  • Linode Dallas (US): 200ms
  • Google VM (TW): 21ms
  • Linode Singapore (SG): 67ms