मैं दो सर्वरों के बीच बेहद धीमी ओपनवीपीएन ट्रांसफर दरों का अनुभव कर रहा हूं। इस प्रश्न के लिए, मैं सर्वरों को सर्वर A और सर्वर B कहूँगा।
सर्वर A और सर्वर B दोनों CentOS 6.6 चल रहे हैं। दोनों 100Vbit लाइन के साथ डेटासेंटर में स्थित हैं और OpenVPN के बाहर दो सर्वरों के बीच डेटा ट्रांसफर ~ 88Mbps के करीब चलता है।
हालाँकि, जब मैं सर्वर ए और सर्वर बी के बीच स्थापित ओपनवीपीएन कनेक्शन पर किसी भी फाइल को स्थानांतरित करने का प्रयास करता हूं, तो मुझे 6.55 एमबीपीएस के आसपास थ्रूपुट मिलता है।
IPerf से परीक्षा परिणाम:
[ 4] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 49184
[ 4] 0.0-10.0 sec 7.38 MBytes 6.19 Mbits/sec
[ 4] 0.0-10.5 sec 7.75 MBytes 6.21 Mbits/sec
[ 5] local 10.0.0.1 port 5001 connected with 10.0.0.2 port 49185
[ 5] 0.0-10.0 sec 7.40 MBytes 6.21 Mbits/sec
[ 5] 0.0-10.4 sec 7.75 MBytes 6.26 Mbits/sec
इन OpenVPN iperf परीक्षणों के अलावा, दोनों सर्वर लगभग पूरी तरह से शून्य लोड के साथ निष्क्रिय हैं।
सर्वर A को IP 10.0.0.1 सौंपा गया है और यह OpenVPN सर्वर है। सर्वर B को IP 10.0.0.2 सौंपा गया है और यह OpenVPN क्लाइंट है।
सर्वर A के लिए OpenVPN कॉन्फ़िगरेशन निम्नानुसार है:
port 1194
proto tcp-server
dev tun0
ifconfig 10.0.0.1 10.0.0.2
secret static.key
comp-lzo
verb 3
सर्वर B के लिए OpenVPN कॉन्फ़िगरेशन निम्नानुसार है:
port 1194
proto tcp-client
dev tun0
remote 204.11.60.69
ifconfig 10.0.0.2 10.0.0.1
secret static.key
comp-lzo
verb 3
मैंने क्या देखा है:
1. मेरा पहला विचार यह था कि मैं सर्वर पर सीपीयू को टोंटी मार रहा था। OpenVPN सिंगल-थ्रेडेड है और ये दोनों सर्वर Intel Xeon L5520 प्रोसेसर चलाते हैं जो सबसे तेज़ नहीं हैं। हालाँकि, मैंने top
iperf परीक्षणों में से एक के दौरान एक कमांड चलाया और 1
कोर द्वारा CPU उपयोग को देखने के लिए दबाया और पाया कि प्रत्येक कोर पर CPU लोड बहुत कम था:
top - 14:32:51 up 13:56, 2 users, load average: 0.22, 0.08, 0.06
Tasks: 257 total, 1 running, 256 sleeping, 0 stopped, 0 zombie
Cpu0 : 2.4%us, 1.4%sy, 0.0%ni, 94.8%id, 0.3%wa, 0.0%hi, 1.0%si, 0.0%st
Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 0.0%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.3%st
Cpu3 : 0.3%us, 0.0%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu9 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu10 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu11 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu12 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu13 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu14 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu15 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 946768k total, 633640k used, 313128k free, 68168k buffers
Swap: 4192188k total, 0k used, 4192188k free, 361572k cached
2. आईपीवीएफ चलने के दौरान ओपनवीपीएन सुरंग पर पिंग समय में काफी वृद्धि होती है। जब iperf नहीं चल रहा है, तो सुरंग के ऊपर पिंग बार लगातार 60ms (सामान्य) होता है। लेकिन जब iperf चल रहा है और भारी ट्रैफ़िक को आगे बढ़ा रहा है, तो पिंग बार अनिश्चित हो जाता है। आप नीचे देख सकते हैं कि जब मैं iperf परीक्षण शुरू कर चुका हूं तो पिंग समय 4 वें पिंग तक स्थिर रहता है:
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=60.1 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=60.1 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=60.2 ms
** iperf test begins **
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=146 ms
64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=114 ms
64 bytes from 10.0.0.2: icmp_seq=6 ttl=64 time=85.6 ms
64 bytes from 10.0.0.2: icmp_seq=7 ttl=64 time=176 ms
64 bytes from 10.0.0.2: icmp_seq=8 ttl=64 time=204 ms
64 bytes from 10.0.0.2: icmp_seq=9 ttl=64 time=231 ms
64 bytes from 10.0.0.2: icmp_seq=10 ttl=64 time=197 ms
64 bytes from 10.0.0.2: icmp_seq=11 ttl=64 time=233 ms
64 bytes from 10.0.0.2: icmp_seq=12 ttl=64 time=152 ms
64 bytes from 10.0.0.2: icmp_seq=13 ttl=64 time=216 ms
3. जैसा कि ऊपर उल्लेख किया गया है, मैंने ओपनवीपीएन सुरंग के बाहर आईपीरफ़ चलाया और थ्रूपुट सामान्य था - ~ 88 एमबीपीएस लगातार।
मैंने क्या कोशिश की है:
1. मुझे लगा कि कंप्यूटर चीजों को दूभर कर सकता है, इसलिए मैंने comp-lzo
दोनों कॉन्फिगों को हटाकर ओपनवीपीएन को फिर से शुरू करके कम्प्रेशन को बंद कर दिया । कोई सुधार नहीं।
2. भले ही मैंने पहले पाया था कि सीपीयू का उपयोग कम था, मैंने सोचा कि सिस्टम के साथ रखने के लिए डिफ़ॉल्ट सिफर थोड़ा बहुत गहन हो सकता है। तो मैं cipher RC2-40-CBC
दोनों विन्यास (एक बहुत हल्के सिफर) में जोड़ा गया और OpenVPN को पुनः आरंभ किया। कोई सुधार नहीं।
3. मैं विभिन्न फोरम पर पढ़ता हूं कि कैसे टुकड़े टुकड़े करना, mssfix और mtu-tun प्रदर्शन के साथ मदद कर सकता है। मैंने इस लेख में वर्णित कुछ बदलावों के साथ खेला , लेकिन फिर से, कोई सुधार नहीं हुआ।
इस तरह के खराब OpenVPN प्रदर्शन के कारण क्या हो सकता है पर कोई विचार?
cipher none
हालांकि मुझे संदेह है कि इससे मदद मिलेगी।