लिंक एकत्रीकरण (LACP / 802.3ad) अधिकतम थ्रूपुट


10

मैं लिनक्स के तहत बंधुआ इंटरफेस के बारे में कुछ भ्रमित व्यवहार देख रहा हूं और मैं इस स्थिति को इस उम्मीद में फेंकना चाहूंगा कि कोई मेरे लिए इसे साफ कर सकता है।

मेरे पास दो सर्वर हैं: सर्वर 1 (S1) में 4x 1Gbit ईथरनेट कनेक्शन हैं; सर्वर 2 (S2) में 2x 1Gbit ईथरनेट कनेक्शन हैं। दोनों सर्वर Ubuntu 12.04 चला रहे हैं, हालांकि कर्नेल 3.11.0-15 (lts-saucy linux-generic पैकेज से)।

दोनों सर्वरों में निम्नलिखित विन्यास (इन /etc/network/interfaces) के साथ एकल बांड इंटरफेस में बंडल किए गए सभी संबंधित नेटवर्क इंटरफेस हैं :

bond-mode 802.3ad
bond-miimon 100
bond-lacp-rate fast
bond-slaves eth0 eth1 [eth2 eth3]

सर्वरों के बीच HP स्विच के एक जोड़े हैं जो (मुझे लगता है) प्रश्न में बंदरगाहों पर LACP के लिए सही ढंग से कॉन्फ़िगर किए गए हैं।

अब, लिंक काम कर रहा है - नेटवर्क ट्रैफ़िक खुशी से और दोनों मशीनों से बहता है। और सभी संबंधित इंटरफेस का उपयोग किया जा रहा है, इसलिए ऐसा नहीं है कि एकत्रीकरण पूरी तरह से विफल हो रहा है। हालाँकि, मुझे इन दोनों सर्वरों के बीच अधिक से अधिक बैंडविड्थ की आवश्यकता है, और मुझे ~ 2Gbit / s नहीं मिल रहा है जिसकी मुझे उम्मीद है।

अपने परीक्षण में, मैं यह देख सकता हूं कि प्रत्येक सर्वर एक एकल स्लेव इंटरफेस में प्रत्येक टीसीपी कनेक्शन (जैसे आईपीएर्फ, एससीपी, एनएएफएस, जो भी हो) आवंटित करने के लिए लगता है। अनिवार्य रूप से सब कुछ अधिकतम 1 गीगाबिट में छाया हुआ लगता है।

सेटिंग करके bond-xmit-hash-policy layer3+4, मैं iperf -c S1 -P2दो स्लेव इंटरफेस पर भेजने के लिए उपयोग कर सकता हूं , लेकिन सर्वर की ओर, रिसेप्शन अभी भी केवल एक स्लेव इंटरफेस पर हो रहा है और कुल थ्रूपुट इसलिए 1Gbit / s पर कैप्ड किया गया है, अर्थात क्लाइंट ~ 40-50MB / s दिखाता है दो दास इंटरफेस पर, सर्वर एक दास इंटरफेस पर ~ 100MB / s दिखाता है। bond-xmit-hash-policyभेजने के बिना भी एक दास इंटरफ़ेस तक सीमित है।

मैं इस धारणा के तहत था कि एलएसीपी को इस तरह के कनेक्शन को बंडलिंग की अनुमति देनी चाहिए, उदाहरण के लिए, दोनों मेजबानों के बीच सभी उपलब्ध इंटरफेस का उपयोग करने के लिए एक एकल स्केप स्थानांतरण।

क्या एलएसीपी के बारे में मेरी समझ गलत है? या क्या मैंने कहीं कॉन्फ़िगरेशन के कुछ विकल्प खो दिए हैं? किसी भी सुझाव या जांच के लिए सुराग बहुत सराहना की जाएगी!

जवाबों:


18

एक त्वरित और गंदी व्याख्या यह है कि एलएसीपी का उपयोग करते हुए संचार की एक एकल पंक्ति पैकेट को कई इंटरफेस पर विभाजित नहीं करेगी। उदाहरण के लिए, यदि आपके पास HostA से HostB तक एक ही टीसीपी कनेक्शन स्ट्रीमिंग पैकेट है तो यह उन पैकेटों को भेजने के लिए इंटरफेस नहीं करेगा। मैं एलएसीपी को देख रहा हूं कि हाल ही में हम जिस समाधान पर काम कर रहे हैं, उसके लिए यह बहुत गलत धारणा है और यह एक सामान्य गलत धारणा है कि एलएसीपी के साथ कई नेटवर्क इंटरफेस को 'बॉन्डिंग' या 'ट्रंकिंग' आपको संयुक्त स्थानों का "थ्रूपुट" देता है। कुछ विक्रेताओं ने मालिकाना ड्राइवर बनाए हैं जो कई इंटरफेस पर काम करेंगे, लेकिन एलएसीपी मानक मेरे द्वारा पढ़े गए से नहीं है। इसी तरह के मुद्दों पर खोज करते हुए मैंने HP से एक अच्छे चित्र और स्पष्टीकरण का लिंक दिया है: http://www.hp.com/rnd/library/pdf/59692372.pdf


1
वह सब समझ में आता है। मुझे नहीं पता कि मैंने अपनी गलत धारणा को क्यों नहीं खोजा है; मुझे बस सही खोज शब्दों और दस्तावेज़ीकरण पृष्ठों के आस-पास ही छेड़खानी करनी चाहिए थी। ऐसा लगता है कि नेटवर्क हार्डवेयर के आधार पर हम src-dest hashing मोड को बदलने में सक्षम हो सकते हैं और मल्टी-इंटरफ़ेस थ्रूपुट पर भाग्य को बदल सकते हैं, लेकिन मुझे लगता है कि इस स्तर पर मैं अभी हमारे पास जो है उससे खुश रहूंगा। आपकी स्पष्टीकरण और बहुत उपयोगी लिंक के लिए धन्यवाद।
ज़ेटेन

मदद करने में खुशी। मैं इस पर हाल ही में बहुत कुछ पढ़ रहा हूं, ट्रंकिंग और बॉन्डिंग से निपटने वाली शब्दावली पर स्पष्टीकरण प्राप्त करने की कोशिश कर रहा हूं जो अलग-अलग विक्रेताओं द्वारा अलग-अलग उपयोग किया जाता है। मैंने पाया है कि विशिष्ट मानकों के बाहर जैसे कि IEEE विक्रेताओं द्वारा परिभाषित उन लोगों ने कुछ शर्तों का उपयोग किया है ...
माइक नायलर

6
दस्तावेज़ अब मूल URL पर उपलब्ध नहीं है, लेकिन यह अभी भी इंटरनेट आर्काइव के माध्यम से उपलब्ध है: web.archive.org/web/20030324105208/http://www.hp.com/rnd/…
smbear

3

bond-xmit-hash-policy layer3+4अपने स्रोत सर्वर से स्विच में लोड संतुलन सेट करता है। यह आपके सर्वर से दूसरे सर्वर पर लोड बैलेंसिंग एल्गोरिदम सेट नहीं करता है। यह लगभग निश्चित रूप से अभी भी परत -2 या परत -3 संतुलित है, अर्थात बिल्कुल भी नहीं।


2

ठीक है, सबसे पहले, जब आप एक टीमिंग ड्राइवर का उपयोग कर रहे हैं, जो कुछ ओवरहेड बनाएगा, और अपेक्षित अधिकतम थ्रूपुट को कम करेगा, जो कि 1 जीबी एडाप्टर पर ~ 940 एमबी / एस ~ 10% है।

मुझे यकीन नहीं है कि आपके पास किस प्रकार का एडाप्टर है, लेकिन यदि आप इन-बॉक्स ड्राइवरों का उपयोग कर रहे हैं, तो सेटिंग्स अधिकतम थ्रूपुट के लिए आदर्श नहीं हैं। आप कतार में जोड़ने पर विचार कर सकते हैं, 4 तक, एडॉप्टर पर एक ही कतार के रूप में शायद तार की दर तक नहीं पहुंच सकते।

एक और विचार, यह है कि iperf का एक धागा संभवतः शीर्ष गति प्राप्त करने वाला नहीं है। 1GB के लिए, 2-6 धागे संभवतः अधिक आदर्श हैं, आप एक ही समय में कई थ्रेड लॉन्च करने के लिए एक सरल बैश स्क्रिप्ट का उपयोग कर सकते हैं।

इंटेल एनआईसी के लिए, लेकिन आरएसएस और हार्डवेयर आरएससी थ्रूपुट को प्रभावित कर सकते हैं, ब्रॉडकॉम पर सुनिश्चित करें कि टीओई काम कर रहा है।

चरण एक, हालांकि, एलएजी को हटाने के लिए होगा और बस प्रत्येक सिस्टम पर ट्रैफ़िक के 1 पोर्ट का परीक्षण करने का प्रयास करें, यह देखने के लिए कि कितना थ्रूपुट मिलता है, सभी बंदरगाहों के साथ ऐसा करें, फिर प्रयास करें 2. LACP सेट होने के लिए एक चंचल जानवर है सही है, और मैंने इसे कभी भी एचपी स्विच पर स्थापित करने की कोशिश नहीं की है, केवल Force10 (प्री-डेल)।

इसके अलावा, कुछ जोड़े क्यों हैं?


जैसा कि अन्य उत्तर में वर्णित है, अंतर्निहित समस्या एलएसीपी के बारे में मेरी समझ थी, लेकिन सिर्फ तस्वीर को भरने के लिए: लिनेक्स बक्से कर्नेल के संबंध चालक का उपयोग कर रहे हैं। प्रत्येक इंटरफ़ेस व्यक्तिगत रूप से निकट-अधिकतम-गीगाबिट थ्रूपुट (जाहिरा तौर पर लगभग 110-117MB / s अन्य ट्रैफिक पर निर्भर करता है) को धक्का दे सकता है, इसलिए मैं वास्तव में व्यक्तिगत एनआईसीएस को ट्यून करने के बजाय उस बैंडविड्थ को बढ़ाना चाहता था। स्विच के रूप में, हमारे पास एक मल्टी-ऑफिस साइट है और रास्ते में फाइबर मक्स / डेमक्स और विभिन्न अन्य बिट्स और बोब्स के साथ ट्रंकिंग स्विच हैं। हालांकि परीक्षण के लिए मेरे पास एक एचपी 2920-48 जी स्विच पर दोनों सर्वर थे।
ज़ेटेन 23'14

iperf के पास --parallelपैरामीटर है जो समानांतर क्लाइंट स्ट्रीम की संख्या को नियंत्रित करता है
8.8.8.8
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.