एक हार्डवेयर राउटर एक लिनक्स राउटर से बेहतर स्पेक्स (रैम और सीपीयू) के साथ बेहतर प्रदर्शन क्यों करता है?


44

मेरे पास एक न्यूनतम सेंटोस 6.3 है, 4 एनआईसी (1 Gbps) के साथ गेटवे के रूप में 64 बिट अभिनय, प्रत्येक सार्वजनिक यातायात के लिए एक साथ बंधुआ और निजी के लिए अन्य है, जो नैटिंग करता है। इसमें 6 जीबी रैम और 4 लॉजिकल कोर हैं। हम पिछले दो वर्षों से इसका उपयोग बिना किसी समस्या के कर रहे हैं।

मुझे हार्डवेयर राउटर का कोई अनुभव नहीं है, लेकिन मैंने सुना है कि उनके पास कम रैम और सीपीयू है और फ्लैश डिस्क का उपयोग करते हैं। कम रैम कॉन्फ़िगरेशन वाला एक बॉक्स अधिक रैम और सीपीयू के साथ मशीन की तुलना में बेहतर (जैसे, समवर्ती कनेक्शन को कैसे संभाल सकता है) बेहतर प्रदर्शन कर सकता है?

इसे संभालने के लिए विभिन्न तरीकों का उपयोग करते हुए IOS के अलावा अन्य सीमित कारक क्या हैं?


5
हार्डवेयर में कार्यान्वयन तेज हैं तो फर्मवेयर उसी समाधान के लिए सॉफ्टवेयर से तेज है।
mdpc

3
आपके द्वारा उल्लेखित "बेहतर चश्मा" हाथ में नौकरी के लिए अप्रासंगिक है। अन्य गुण हैं जो वास्तव में मायने रखते हैं।
ndim

ठीक है, तो ... आपने जो लिखा है, क्या मुझे यह मान लेना चाहिए कि आपका Centos एक वर्चुअल मशीन है? वर्चुअल मशीनों के लिए विशेष रूप से नेटवर्क अनुकूलन के लिए, दोनों हाइपरवाइजर और अतिथि पक्षों पर, वर्चुअल मशीन आमतौर पर इस तरह की भूमिका में अच्छा नहीं जाना जाता है ... राउटर / फ़ायरवॉल के रूप में उपयोग के लिए, नंगे धातु की सिफारिश हमेशा की जाती है!
पथराव हुआ

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

जवाबों:


64

ASICs

एक सामान्य उद्देश्य CPU और कार्य-विशिष्ट सॉफ़्टवेयर का उपयोग करने के बजाय, आप सॉफ़्टवेयर को छोड़ सकते हैं और बस सिलिकॉन को सीधे कार्य को संभाल सकते हैं।

हाई परफॉर्मेंस नेटवर्किंग हार्डवेयर सॉफ्टवेयर के बजाय ASICs का उपयोग कम्प्यूटेशनल रूप से भारी (लेकिन अपेक्षाकृत सरल) कार्यों के लिए करता है जैसे IP पते की तुलना एक विशाल इंटरनेट रूटिंग टेबल से करना, स्विचिंग निर्णय के लिए CAM तालिका की जांच करना या ACL के खिलाफ एक पैकेट की जांच करना। । यह उन समय-संवेदी संचालन की गति में भारी अंतर करता है, जो एक सामान्य-उद्देश्य सीपीयू पर एक महत्वपूर्ण लाभ प्रदान करता है।


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

@rvh: फ़ायरवॉलिंग के लिए या सिर्फ रूटिंग के लिए?
मावरोन

2
और कुल मिलाकर, 'गति' यहाँ एक बहुत ही ढीला शब्द है। मुझे यकीन है कि कई परिस्थितियां हैं जहां एक पीसी अभी भी एक एचडब्ल्यू एक के रूप में 'तेज' के रूप में एक ऑपरेशन कर सकता है, या हो सकता है कि एचडब्ल्यू की तुलना में कुछ निरंतर अवधि लंबी हो। लेकिन यह वास्तव में स्थिरता और 'अपने हिरन के लिए धमाके' के लिए नीचे आता है- आप अभी भी एक उपकरण के साथ कम रैम / सीपीयू खरीद रहे हैं, लेकिन यह इसमें से अधिक हो जाता है, और केवल वही करता है जिससे आपको स्थिरता प्राप्त करने की आवश्यकता होती है
कॉलिन गोडसे

यह उत्तर ommission द्वारा गलत है। बस "ASICs" चिल्लाना भी सबसे अधिक रूटर्स के रूप में थोड़ा सा अनुभवहीन है जो NAT का उपयोग सामान्य उद्देश्य CPU का करते हैं, जब तक कि हम चरम प्रदर्शन में नहीं जा रहे हैं। इसके अलावा वास्तव में हार्डवेयर-NAT-routers समवर्ती कनेक्शन की संख्या पर मजबूत सीमाएं हैं। ओपी अनुभव क्या गलत है और एक ऑपरेटिंग सिस्टम का उपयोग जो कार्य के अनुरूप नहीं है।
22

@dualed most routers that do NAT use general purpose CPUsहाँ, यह एक सत्य कथन है, लेकिन इस तथ्य से अनभिज्ञ है कि उन उपकरणों में से कई समर्पित चिप्स के लिए विशिष्ट संचालन को लोड करते हैं (जैसा कि ऊपर मेरे पूर्ण उत्तर को पढ़ने से स्पष्ट होता है)। नेट और कनेक्शन ट्रैकिंग (जो मैं सहमत हूं, आधुनिक उपकरणों में एएसआईसीएस में नहीं होता है), राउटिंग टेबल और स्विचिंग ऑफलोडिंग के बारे में न सोचें।
शेन झुंझलाना

12

एक उच्च-अंत, समर्पित राउटर एक पीसी को तेज सीपीयू और अधिक रैम के साथ बेहतर बना सकता है क्योंकि यह हार्डवेयर में रूटिंग का अधिक कार्य कर सकता है।

यही कारण है कि एक $ 60 गीगाबिट ईथरनेट स्विच एक $ 2,000 पीसी को 4 दो-पोर्ट गीगा कार्ड के साथ एक ईथरनेट स्विच के रूप में कार्य कर सकता है। स्विच एक स्विच होने के लिए जमीन से बनाया गया है।


3
और चूँकि समर्पित राउटर एक फ्लैश डिस्क पर चल रहा है, इसलिए इनोपपोर्ट्यून समय में विफल होने के लिए कम चलते हैं।
cpt_fink

3
मुझे यकीन नहीं है कि आप सही हैं। मैंने नेटमैप ( info.iet.unipi.it/~luigi/netmap ) पर आधारित एक कंपनी के लिए एक बहुत ही बुनियादी एंटी-डीडीओएस सुरक्षा बनाई है और यह सामान्य हार्डवेयर (वास्तव में पूर्ण 1 जीबी / एस या 11 एम) पर भी बहुत अच्छा प्रदर्शन किया है पैकेट / सेकंड)। उस साइट पर नेटमैप के लिए ओपनवॉच का एक संस्करण भी है जो "सामान्य" हार्डवेयर पर 3M पैकेट / सेकंड को आगे कर सकता है, मुझे कोई सस्ता (500 डॉलर) स्विच नहीं पता है जो यह कर सकता है, लेकिन मैं गलत हो सकता है।
XzKto

2
@XzKto एक विशिष्ट सस्ते ($ 60) 5 पोर्ट गीगई स्विच पूर्ण तार की गति पर बंदरगाहों के सभी संयोजनों के बीच पैकेट को आगे कर सकता है। वे आम तौर पर एक पूर्ण, गैर-अवरुद्ध क्रॉसबार का उपयोग करते हैं।
डेविड श्वार्ट्ज

@XzKto डेविड का मतलब क्या है, पीसी के विपरीत जो "अपने स्वयं के इंटरफेस थ्रूपुट तक" गति को संभाल लेगा, स्विच पोर्ट-टू-पोर्ट के हर संयोजन के लिए करता है। आप host1 से host1, और 3 से 4 तक बात कर सकते हैं, और प्रत्येक कनेक्शन पूर्ण द्वैध और अधिकतम थ्रूपुट पर हो सकता है । आप उसे हरा नहीं सकते। (और अधिक पैसे के लिए, अधिक पोर्ट, यह देखना भी आसान है कि यह तेज़ क्यों है)। और राउटर के लिए, यह एक समान है: हार्डवेयर सॉफ्टवेयर की तुलना में तेजी से पुन: प्राप्त करने में सक्षम होगा, क्योंकि यह जल्द से जल्द पुन: प्राप्त कर सकता है, जब आपके पास पर्याप्त जानकारी होगी (आपका लिनक्स राउटर इसे प्रत्येक परत पर करेगा, लेकिन वहां पहले से ही धीमा हो जाएगा
ओलिवियर दुलक

11

"IOS के अलावा अन्य"?

IOS लगभग सभी अंतर बनाता है। CentOS एक सामान्य-उद्देश्य वाला ऑपरेटिंग सिस्टम है। यह विभिन्न हार्डवेयर विन्यासों के एक विशाल सरणी का उपयोग करके, परिदृश्यों की एक विस्तृत श्रृंखला के तहत काफी अच्छा प्रदर्शन करने के लिए डिज़ाइन किया गया है। दूसरी ओर IOS नेटवर्क उपकरणों के एक टुकड़े से केवल उसी तरह के कार्यभार की अपेक्षा करता है, जिसे आप बहुत ही विशिष्ट प्रकार के हार्डवेयर का उपयोग करके सिस्को गियर में पाएंगे।

यह जानना कि हार्डवेयर के कौन से टुकड़े आपके लिए प्रोग्रामिंग हैं, आप प्रदर्शन बनाम अनुकूलता के मामले में बहुत लंबा रास्ता तय करेंगे।


3
+1। इस तथ्य को जोड़ें कि सिस्को के पास इंजीनियरिंग संसाधन हैं और जरूरत पड़ने पर हार्डवेयर के साथ सॉफ्टवेयर को बदलने का तरीका भी जानते हैं । मतलब, यदि कोई विशेष ऑपरेशन सॉफ्टवेयर की तरह होता है, तो वे इंजीनियरिंग में एक एएसआईसी में प्रयास डाल सकते हैं, अपने मौजूदा प्रसंस्करण इकाइयों में निर्देश जोड़ सकते हैं या इसे गति देने में मदद करने के लिए एक हार्डवेयर मॉड्यूल का निर्माण कर सकते हैं। जब आप सॉफ्टवेयर और हार्डवेयर दोनों को नियंत्रित करने की लग्जरी रखते हैं, तो तालियां प्रदर्शन के पक्ष में भारी होती हैं ।
जस्टिन ᚅᚔᚈᚄᚒᚔ

यह दोनों तरह से भी काम करता है। हार्डवेयर को दुर्लभ, जटिल मामलों से भी निपटने की आवश्यकता नहीं है। यह सिर्फ उन सॉफ्टवेयर को फेंकता है। रूटिंग छोरों? हार्डवेयर में यह पता लगाने की कोशिश न करें कि उन लोगों से कैसे निपटें।
MSalters

4

सॉफ्टवेयर और हार्डवेयर दोनों में कुछ कहना है। मेरे पास जेनेरिक सर्वर हार्डवेयर पर इंटेल और टीपी-लिंक एनआईसी (जो अपने दिल में एक रियलटेक चिप का उपयोग करता है), साथ ही साथ राउटिंग में उद्देश्य-निर्मित और सामान्य-उद्देश्य सॉफ़्टवेयर की तुलना है।

हार्डवेयर पक्ष पर, यदि ASIC ऑन बोर्ड IP ट्रैफ़िक की कुछ हैंडलिंग कर सकता है, तो प्रोसेसर लोड कम हो सकता है और इस प्रकार तेज़ हो सकता है। मैंने दो ऑनबोर्ड INtel NIC चिप्स देखे हैं जो सीधे DMA द्वारा संवाद करते हैं, पैकेट अग्रेषण से निपटने में मुख्य CPU को दरकिनार करते हैं; इस बीच जब भी कोई पैकेट आता है तो रियलटेक चिप बाधित होती है।

सॉफ्टवेयर साइड पर, यदि सॉफ्टवेयर को राउटिंग में उपयोग करने के लिए डिज़ाइन किया गया है, तो इसे और अधिक कुशल बनाया जा सकता है। मैंने दोनों pfSense + PF (राउटर के रूप में इस्तेमाल किया जाने वाला एक संशोधित FreeBSD) और जेनेरिक-उद्देश्य Ubuntu 12.04 + iptables को राउटिंग सॉफ़्टवेयर के रूप में इस्तेमाल किया है और पहला स्पष्ट रूप से ट्रैफ़िक को बहुत तेज़ी से स्विच करता है। (Ubuntu 14.04 अब लगभग उतनी ही तेजी से है, लिनक्स 3.13 कर्नेल में नए nftables के लिए धन्यवाद।)

हालाँकि समर्पित राउटर में एक बड़ी खामी है: यह ट्रैफ़िक स्विच करने के अलावा बहुत कुछ नहीं कर सकता है, और इसे वर्चुअलाइज़ नहीं किया जा सकता है। मेरा वर्तमान एज राउटर उबंटू 14.04 पर चलने वाले मेरे ESXi क्लस्टर के अंदर एक वर्चुअल मशीन है, और यह एक घुसपैठ का पता लगाने वाली प्रणाली और लोड डांसर के रूप में भी काम करता है।


3

AFAIK, यह एक सामान्य-उद्देश्य ऑपरेटिंग सिस्टम का ओवरहेड है; आपके कनेक्शन कितनी तेज़ हैं, इसकी परवाह किए बिना पैकेट को कर्नेल के संदर्भ में पैकेट-दर-पैकेट के आधार पर निपटाया जाता है, जिससे सिस्टम में विलंबता और तनाव बढ़ जाता है। मेरा मानना ​​है कि यह पहले से ही बेहतर अन्य उत्तरों में समझाया गया है।

यह कहते हुए कि, लोकप्रिय और व्यवहार्यता में बढ़ती नई "ईश" तकनीकों का वादा किया जा रहा है जो कि लिनक्स सिस्टम से बाहर और साथ ही अन्य मामलों में एक अधिक दुर्जेय प्रतियोगी बना सकता है; यानी InfiniBand

StackOverflow पर निम्न क्यू एंड ए पर एक नज़र डालें: टीसीपी कर्नेल-बाईपास कैसे कार्यान्वित किया जाता है

आगे की पढाई:


2

यह आमतौर पर आउट-ऑफ-बॉक्स नेटवर्क स्टैक / उपकरणों के विन्यास की कमी के कारण होता है। लगभग 90% मामलों में आपके नेटवर्क ट्रैफ़िक को CPU0 द्वारा संसाधित किया जाता है जबकि अन्य निष्क्रिय हैं। यदि आप हार्डवेयर राउटर के साथ इस समस्या के अंतर को हल करेंगे तो इतना कठोर नहीं होगा जितना आप सोच सकते हैं। आपको कम से कम RSS या RPS (CPU के बीच ड्राइवर / स्टैक आधारित पैकेट प्रसंस्करण वितरण) सेट करना चाहिए।

यदि आप वास्तव में अपने लिनक्स राउटर के प्रदर्शन की देखभाल करते हैं और आपके पास पर्याप्त समय है तो मैं आपको इस लेख को पैकेजक्लाउड ब्लॉग में पढ़ने की सलाह देता हूं (पैकेट को प्रसारित करने के बारे में भी लेख है)।

यदि आपको वितरण पर एक नज़र डालने की आवश्यकता है और आप सोचते हैं कि while sleep 1; do cat $some_file_in_procfs; doneसीपीयू मुखौटा मूल्यांकन और मैनुअल smp_affinityलेखन उबाऊ है, तो आपको शायद मेरा पालतू-प्रोजेक्ट नेटिलिल्स-लिनक्स बेहद उपयोगी लगेगा ।

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