Mantıksal olarak, VPN tünel açma için SSH'den daha hızlı olmalıdır, çünkü:
- UDP üzerinde çalışıyor ve TCP değil (TCP üzerinden TCP yok)
- Sıkıştırma var
Ancak bugün Redis replikasyonunu her iki yöntemde de test ettim.
Testi bir ABD-Doğu AWS VM'sine bağlanan bir İrlanda AWS VM'si üzerinden yaptım.
Ben boş Redis sunucu karşılaştık ve bitmiş yükleme sonra ben idam - benim test case Redis çoğaltma olduğundan, bu ben test tam olarak ne slaveof
diğer sunucu ve arasındaki süreyi ölçülür Connecting to MASTER
ve MASTER <-> SLAVE sync: Finished with success
. Arasında ben kullandım
while 1; do redis-cli -p 7777 info | grep master_sync_left_bytes;sleep 1; done
Hızın kaba bir tahminini almak için.
SSH uzun bir atışta kazandı: OpenVPN'in ~ 2MB / s ile karşılaştırıldığında ~ 11MB / s.
Bu, yeniden yerleştirdiğim her şeyin yanlış olduğu veya kurulumumu fena halde yanlış yapılandırdığım anlamına mı geliyor?
Güncelleştirme
Aynı veri kümesiyle birkaç test yaptım ve şu sonuçları aldım:
- OpenVPN
- TCP:
sıkıştırma: 15m
sıkıştırma yok: 21m - UDP:
sıkıştırma: 5m
sıkıştırma yok: 6m
- TCP:
- SSH
varsayılanları: 1m50s
sıkıştırma yok: 1m30s
sıkıştırma: 2m30s
Update2
İki yönlü testlerle iperf sonuçları: (SSH hariç, geri dönüş yolunun olmadığı yerler)
| method | result (Mb/s)|
|------------------+--------------|
| ssh | 91.1 / N.A |
| vpn blowfish udp | 43 / 11 |
| vpn blowfish tcp | 13 / 12 |
| vpn AES udp | 36 / 4 |
| vpn AES tcp | 12 / 5 |
Teknik özellikler
CentOS 6.3 (sunucu), CentOS 6.5 (istemci) kullanıyorum.
OpenVPN sürümü 2.3.2'dir (Ubuntu 14.10'dakiyle aynıdır, bu nedenle küflü sürüm yoktur)
SSH tünelim şöyle görünür:
ssh -f XXXX@XXXX -i XXXX -L 12345:127.0.0.1:12345 -N
Yapılandırma dosyam şuna benziyor:
server
port 1194
proto udp
dev tun0
topology subnet
log /var/log/openvpn.log
ca XXXX
cert XXXX
key XXXX
dh XXXX
crl-verify XXXX
cipher AES-256-CBC
server XXXX 255.255.255.0
ifconfig-pool-persist /etc/openvpn/ipp.txt
keepalive 10 120
comp-lzo
status /var/log/openvpn-status.log
verb 3
tun-mtu 1500
fragment 1300
persist-key
persist-tun
müşteri
client
remote XXXX 1194
proto udp
dev tun
log /var/log/openvpn.log
comp-lzo
cipher AES-256-CBC
ns-cert-type server
# the full paths to your server keys and certs
ca XXXX
cert XXXX
key XXXX
tun-mtu 1500 # Device MTU
fragment 1300 # Internal fragmentation
persist-key
persist-tun
nobind