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


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

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

आईओएस के अलावा इसे सीमित करने के लिए अलग-अलग तरीकों का उपयोग कर सीमित कारक क्या हैं?


43
2018-03-28 03:51


मूल


हार्डवेयर में कार्यान्वयन तेजी से होते हैं तो फर्मवेयर उसी समाधान के लिए सॉफ़्टवेयर से तेज़ होता है। - mdpc
आपके द्वारा उल्लेख किए गए "बेहतर चश्मा" हाथ में नौकरी के लिए अप्रासंगिक हैं। अन्य गुण भी हैं जो वास्तव में मायने रखते हैं। - ndim
ठीक है, तो ... आपने जो लिखा है, क्या मुझे लगता है कि आपका केंद्र वर्चुअल मशीन है? आभासी मशीनों के लिए विशेष नेटवर्क ऑप्टिमाइज़ेशन के अलावा, दोनों हाइपरवाइजर और अतिथि पक्षों पर, आभासी मशीनों को आमतौर पर इस तरह की भूमिका में अच्छा नहीं माना जाता है ... राउटर / फ़ायरवॉल के रूप में उपयोग के लिए, नंगे धातु हमेशा की सिफारिश की! - stoned
क्या आप वास्तव में अपने कॉन्फ़िगरेशन द्वारा सुझाए गए 1 जीबीपीएस यातायात को रूट कर रहे हैं? आप रेत से भरे फावड़े को स्थानांतरित करने के लिए एक डम्प्ट्रुक का उपयोग कर सकते हैं। 6 जीबी रैम और 4 कोर मूल रूप से राउटर के लिए कभी भी छुआ नहीं जा रहे हैं, आप इस काम को करने के लिए एक छोटी इंटेल एटम मशीन का उपयोग कर बिजली और रैक स्पेस बचा सकते हैं। - Bert


जवाब:


ASICs

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

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


64
2018-03-28 04:06



जबकि मैं शेन के साथ सहमत हूं, मैं किसी भी उपकरण पर एक सामान्य सर्वर पर चल रहे iptables का चयन करूंगा। मेरी कंपनी में, फेडोरा पर चल रहे iptables तेज, अधिक लचीला, कॉन्फ़िगर करने के लिए आसान है, सीपीयू और मेमोरी पर कम कर, बूट करने के लिए तेज़, और हमारे सिस्को एसा से सस्ता तरीका है। - rvh
@ आरवीएच: फ़ायरवॉलिंग या सिर्फ रूटिंग के लिए? - mveroone
और कुल मिलाकर, 'गति' यहां एक बहुत ढीली अवधि है। मुझे यकीन है कि ऐसी कई स्थितियां हैं जहां एक पीसी अभी भी एक एचडब्ल्यू एक के रूप में 'तेजी से' ऑपरेशन कर सकता है, या हो सकता है कि एचडब्ल्यू की तुलना में कुछ स्थिर अवधि हो। लेकिन यह वास्तव में स्थिरता के लिए नीचे आ गया है और 'आपके हिरण के लिए बैंग' - आप अभी भी एक उपकरण के साथ कम रैम / सीपीयू खरीद रहे हैं, लेकिन इसमें से अधिक से अधिक हो जाता है, और केवल वही करता है जो आपको स्थिरता प्राप्त करता है - Colin Godsey
यह जवाब ओमिशन द्वारा गलत है। बस "एएसआईसी" चिल्लाते हुए थोड़ा सा बेवकूफ़ है क्योंकि अधिकांश राउटर जो एनएटी सामान्य प्रयोजन सीपीयू का उपयोग करते हैं, जब तक कि हम चरम प्रदर्शन में नहीं जा रहे हैं। इसके अलावा हार्डवेयर-एनएटी-राउटर के समवर्ती कनेक्शन की संख्या पर मजबूत सीमाएं होती हैं। ओपी अनुभव क्या गलत कॉन्फ़िगरेशन और एक ऑपरेटिंग सिस्टम का उपयोग है जो कार्य के अनुरूप नहीं है। - dualed
@dualed most routers that do NAT use general purpose CPUs हां, यह एक सच्चा बयान है, लेकिन इस तथ्य से अनजान है कि उनमें से कई डिवाइस ऑफलोड हैं विशिष्ट समर्पित चिप्स के लिए संचालन (उपरोक्त मेरे पूर्ण उत्तर के पढ़ने के रूप में स्पष्ट करता है)। एनएटी और कनेक्शन ट्रैकिंग (जो, मैं सहमत हूं, आधुनिक उपकरणों में एएसआईसी में नहीं होता), रूटिंग टेबल और ऑफलोडिंग स्विचिंग मत सोचो। - Shane Madden♦


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

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


12
2018-03-28 04:06



और चूंकि समर्पित राउटर फ्लैश डिस्क पर चल रहा है, इसलिए कम चलने वाले हिस्सों को अप्रचलित समय पर असफल होने के कारण हैं। - cpt_fink
मुझे सच में यकीन नहीं है कि आप सही हैं। मैंने नेटमैप पर आधारित एक कंपनी के लिए एक बहुत ही बुनियादी एंटी-डीडीओएस सुरक्षा बनाई है (info.iet.unipi.it/~luigi/netmap) और यह सामान्य हार्डवेयर पर भी बहुत अच्छा प्रदर्शन किया (वास्तव में पूर्ण 1 जीबी / एस या 11 एम पैकेट / सेकंड)। उस साइट पर नेटमैप के लिए openswitch का एक संस्करण भी है जो "सामान्य" हार्डवेयर पर 3 एम पैकेट / सेकंड अग्रेषित कर सकता है, मुझे कोई सस्ता (500 $) स्विच नहीं पता है जो यह कर सकता है, लेकिन मैं गलत हो सकता हूं। - XzKto
@XzKto एक ठेठ सस्ता ($ 60) 5 पोर्ट गीग स्विच पूर्ण तार गति पर बंदरगाहों के सभी संयोजनों के बीच पैकेट आगे बढ़ा सकता है। वे आम तौर पर एक पूर्ण, गैर-अवरुद्ध क्रॉसबार का उपयोग करते हैं। - David Schwartz
@XzKto डेविड का क्या मतलब था, पीसी के विपरीत जो "अपने इंटरफेस थ्रूपुट" गति को संभालेगा, स्विच पोर्ट पोर्ट से प्रत्येक संयोजन के लिए होता है। आप होस्ट 2 से मेजबान 1, और 3 से 4, और प्रत्येक कनेक्शन पर बात कर सकते हैं पूर्ण डुप्लेक्स और अधिकतम थ्रूपुट। आप इसे हरा नहीं सकते। (और अधिक पैसे के लिए, अधिक बंदरगाहों, यह देखने में भी आसान है कि यह तेज़ क्यों है)। और राउटर के लिए, यह समान प्रकार का है: हार्डवेयर सॉफ़्टवेयर की तुलना में तेज़ी से फिर से शुरू करने में सक्षम होगा, क्योंकि जैसे ही इसमें पर्याप्त जानकारी हो सकती है (आपका लिनक्स राउटर प्रत्येक परत पर ऐसा करेगा, लेकिन वहां पहले से ही धीमा हो जाएगा) - Olivier Dulac


"आईओएस के अलावा"?

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

ज्ञान ठीक ठीक आप जिस हार्डवेयर के लिए प्रोग्रामिंग कर रहे हैं, वह आपको प्रदर्शन बनाम संगतता के संदर्भ में एक बहुत लंबा रास्ता ले जाएगा।


11
2018-03-28 03:55



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


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

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

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

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


4
2018-04-23 11:41





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

ऐसा कहकर, लोकप्रियता और व्यवहार्यता में बढ़ती नई "आईएसएच" प्रौद्योगिकियां बढ़ रही हैं जो इस में लिनक्स सिस्टम के साथ-साथ अन्य संबंधों में एक और अधिक भयानक प्रतियोगी बना सकती हैं; यानी इन्फिनीबैंड

StackOverflow पर निम्न प्रश्नोत्तर देखें: टीसीपी कर्नेल-बायपास कैसे कार्यान्वित किया जाता है

आगे की पढाई:


3
2017-10-17 21:40





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

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

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


2
2017-07-16 03:56