लोड संतुलन (कंप्यूटिंग)

From alpha
Jump to navigation Jump to search
एक लोड बैलेंसर द्वारा वितरित किए जा रहे इलास्टिक्स खोज क्लस्टर के लिए उपयोगकर्ता अनुरोधों को दर्शाने वाला चित्र। (विकिपीडिया के लिए उदाहरण।)

कंप्यूटिंग में, लोड बैलेंसिंग सिस्टम रिसोर्स (कंप्यूटिंग यूनिट्स) के एक सेट पर टास्क (कंप्यूटिंग) के एक सेट को वितरित करने की प्रक्रिया है, जिसका उद्देश्य उनके समग्र प्रसंस्करण को और अधिक कुशल बनाना है। लोड संतुलन प्रतिक्रिया समय को अनुकूलित कर सकता है और कुछ कंप्यूट नोड्स को असमान रूप से ओवरलोड करने से बचा सकता है जबकि अन्य कंप्यूट नोड्स को निष्क्रिय छोड़ दिया जाता है।

लोड बैलेंसिंग समानांतर कंप्यूटर के क्षेत्र में शोध का विषय है। दो मुख्य दृष्टिकोण मौजूद हैं: स्थैतिक एल्गोरिदम, जो विभिन्न मशीनों की स्थिति को ध्यान में नहीं रखते हैं, और गतिशील एल्गोरिदम, जो आमतौर पर अधिक सामान्य और अधिक कुशल होते हैं, लेकिन नुकसान के जोखिम पर विभिन्न कंप्यूटिंग इकाइयों के बीच सूचनाओं के आदान-प्रदान की आवश्यकता होती है। दक्षता का।

समस्या अवलोकन

लोड-बैलेंसिंग एल्गोरिदम हमेशा एक विशिष्ट समस्या का उत्तर देने का प्रयास करता है। अन्य बातों के अलावा, कार्यों की प्रकृति, एल्गोरिथम कम्प्यूटेशनल जटिलता, हार्डवेयर आर्किटेक्चर जिस पर एल्गोरिदम चलेगा और साथ ही आवश्यक त्रुटि सहिष्णुता को भी ध्यान में रखा जाना चाहिए। इसलिए एप्लिकेशन-विशिष्ट आवश्यकताओं को सर्वोत्तम रूप से पूरा करने के लिए समझौता करना चाहिए।

कार्यों की प्रकृति

लोड बैलेंसिंग एल्गोरिदम की दक्षता गंभीर रूप से कार्यों की प्रकृति पर निर्भर करती है। इसलिए, निर्णय लेने के समय कार्यों के बारे में जितनी अधिक जानकारी उपलब्ध होती है, अनुकूलन की संभावना उतनी ही अधिक होती है।

कार्यों का आकार

प्रत्येक कार्य के निष्पादन समय का सही ज्ञान एक इष्टतम लोड वितरण तक पहुंचने की अनुमति देता है (उपसर्ग राशि का एल्गोरिथ्म देखें)।[1] दुर्भाग्य से, यह वास्तव में एक आदर्श मामला है। प्रत्येक कार्य का सटीक निष्पादन समय जानना एक अत्यंत दुर्लभ स्थिति है।

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


निर्भरताएँ

कुछ मामलों में, कार्य एक दूसरे पर निर्भर करते हैं। इन अन्योन्याश्रितताओं को एक निर्देशित चक्रीय ग्राफ द्वारा चित्रित किया जा सकता है। सहज रूप से, कुछ कार्य तब तक शुरू नहीं हो सकते जब तक कि अन्य पूरे नहीं हो जाते।

यह मानते हुए कि प्रत्येक कार्य के लिए आवश्यक समय पहले से ज्ञात है, एक इष्टतम निष्पादन क्रम कुल निष्पादन समय को कम करने के लिए नेतृत्व करना चाहिए। हालांकि यह एक एनपी-कठिन समस्या है और इसलिए इसे ठीक से हल करना मुश्किल हो सकता है। जॉब शेड्यूलर जैसे एल्गोरिदम हैं, जो मेटाह्यूरिस्टिक विधियों का उपयोग करके इष्टतम कार्य वितरण की गणना करते हैं।

कार्यों का पृथक्करण

लोड बैलेंसिंग एल्गोरिदम के डिजाइन के लिए महत्वपूर्ण कार्यों की एक अन्य विशेषता निष्पादन के दौरान उप-कार्यों में विभाजित होने की उनकी क्षमता है। बाद में प्रस्तुत ट्री-शेप्ड कंप्यूटेशन एल्गोरिथम इस विशिष्टता का बहुत लाभ उठाता है।

स्थिर और गतिशील एल्गोरिदम

स्टेटिक

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

स्टेटिक लोड बैलेंसिंग तकनीक आमतौर पर एक राउटर, या मास्टर/स्लेव (टेक्नोलॉजी) के आसपास केंद्रीकृत होती है, जो लोड को वितरित करती है और प्रदर्शन फ़ंक्शन को अनुकूलित करती है। यह न्यूनतमकरण वितरित किए जाने वाले कार्यों से संबंधित जानकारी को ध्यान में रख सकता है और अपेक्षित निष्पादन समय प्राप्त कर सकता है।

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

गतिशील

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

डायनेमिक लोड बैलेंसिंग आर्किटेक्चर अधिक मॉड्यूलर हो सकता है क्योंकि काम के वितरण के लिए समर्पित एक विशिष्ट नोड होना अनिवार्य नहीं है। जब कार्य किसी प्रोसेसर को विशिष्ट रूप से एक निश्चित समय पर उनके राज्य के अनुसार सौंपा जाता है, तो यह एक अनूठा असाइनमेंट होता है। यदि, दूसरी ओर, सिस्टम की स्थिति और इसके विकास के अनुसार कार्यों को स्थायी रूप से पुनर्वितरित किया जा सकता है, तो इसे डायनेमिक असाइनमेंट कहा जाता है।[3] जाहिर है, एक लोड बैलेंसिंग एल्गोरिदम जिसे अपने निर्णयों तक पहुंचने के लिए बहुत अधिक संचार की आवश्यकता होती है, समग्र समस्या के समाधान को धीमा करने का जोखिम उठाता है।

हार्डवेयर आर्किटेक्चर

विषम मशीनें

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

उदाहरण के लिए, कम-शक्ति वाली इकाइयाँ ऐसे अनुरोध प्राप्त कर सकती हैं जिनके लिए कम गणना की आवश्यकता होती है, या, सजातीय या अज्ञात अनुरोध आकार के मामले में, बड़ी इकाइयों की तुलना में कम अनुरोध प्राप्त होते हैं।

साझा और वितरित स्मृति

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

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

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

पदानुक्रम

ऊपर दिखाई देने वाली हार्डवेयर संरचनाओं को अपनाते हुए, लोड बैलेंसिंग एल्गोरिदम की दो मुख्य श्रेणियां हैं। एक ओर जहां कार्यों को "मास्टर" द्वारा असाइन किया जाता है और "श्रमिकों" द्वारा निष्पादित किया जाता है, जो मास्टर को अपने काम की प्रगति के बारे में सूचित करते हैं, और मास्टर तब वर्कलोड को असाइन करने या पुन: असाइन करने का प्रभार ले सकता है गतिशील एल्गोरिदम। साहित्य इसे मास्टर/गुलाम (प्रौद्योगिकी) के रूप में संदर्भित करता है मास्टर-कार्यकर्ता वास्तुकला। दूसरी ओर, नियंत्रण को विभिन्न नोड्स के बीच वितरित किया जा सकता है। लोड संतुलन एल्गोरिथ्म तब उनमें से प्रत्येक पर निष्पादित किया जाता है और कार्यों को असाइन करने की ज़िम्मेदारी (साथ ही साथ पुन: असाइन करना और उचित रूप से विभाजित करना) साझा की जाती है। अंतिम श्रेणी एक डायनेमिक लोड बैलेंसिंग एल्गोरिथम मानती है।

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

बड़े आर्किटेक्चर (स्केलेबिलिटी) के लिए अनुकूलन

एल्गोरिदम के संदर्भ में जो बहुत लंबी अवधि (सर्वर, क्लाउड...) पर चलते हैं, कंप्यूटर आर्किटेक्चर समय के साथ विकसित होता है। हालाँकि, यह बेहतर है कि हर बार एक नया एल्गोरिथम डिज़ाइन न किया जाए।

लोड बैलेंसिंग एल्गोरिदम का एक अत्यंत महत्वपूर्ण पैरामीटर इसलिए स्केलेबल हार्डवेयर आर्किटेक्चर के अनुकूल होने की क्षमता है। इसे एल्गोरिथम की मापनीयता कहा जाता है। एक एल्गोरिथ्म को इनपुट पैरामीटर के लिए स्केलेबल कहा जाता है जब इसका प्रदर्शन उस पैरामीटर के आकार से अपेक्षाकृत स्वतंत्र रहता है।

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


दोष सहनशीलता

विशेष रूप से बड़े पैमाने पर कंप्यूटिंग क्लस्टर में, एक समानांतर एल्गोरिथ्म को निष्पादित करना सहनीय नहीं है जो एक एकल घटक की विफलता का सामना नहीं कर सकता है। इसलिए, दोष सहिष्णु एल्गोरिदम विकसित किए जा रहे हैं जो प्रोसेसर के आउटेज का पता लगा सकते हैं और गणना को ठीक कर सकते हैं।[5]


दृष्टिकोण

कार्यों के पूर्ण ज्ञान के साथ स्थिर वितरण: उपसर्ग योग

यदि कार्य एक दूसरे से स्वतंत्र हैं, और यदि उनके संबंधित निष्पादन समय और कार्यों को उप-विभाजित किया जा सकता है, तो एक सरल और इष्टतम एल्गोरिथम है।

कार्यों को इस तरह विभाजित करके कि प्रत्येक प्रोसेसर को समान मात्रा में संगणना दी जा सके, जो कुछ भी किया जाना बाकी है वह परिणामों को एक साथ समूहित करना है। एक उपसर्ग योग एल्गोरिथ्म का उपयोग करते हुए, इस विभाजन की गणना प्रोसेसर की संख्या के संबंध में लघुगणकीय समय में की जा सकती है।[citation needed]

कार्यों की विभाज्यता के आधार पर लोड संतुलन एल्गोरिथ्म

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

अधिकांश समय, किसी कार्य के निष्पादन का समय अज्ञात होता है और केवल मोटे सन्निकटन ही उपलब्ध होते हैं। यह एल्गोरिथ्म, हालांकि विशेष रूप से कुशल है, इन परिदृश्यों के लिए व्यवहार्य नहीं है।

पूर्व ज्ञान के बिना स्थैतिक भार वितरण

भले ही निष्पादन समय पहले से ज्ञात न हो, स्थैतिक भार वितरण हमेशा संभव होता है।

राउंड-रॉबिन शेड्यूलिंग

एक राउंड-रॉबिन एल्गोरिथ्म में, पहला अनुरोध पहले सर्वर को भेजा जाता है, फिर अगले को दूसरे को, और इसी तरह अंतिम को भेजा जाता है। फिर इसे फिर से शुरू किया जाता है, अगला अनुरोध पहले सर्वर को सौंपा जाता है, और इसी तरह।

इस एल्गोरिथ्म को इस तरह से भारित किया जा सकता है कि सबसे शक्तिशाली इकाइयां सबसे बड़ी संख्या में अनुरोध प्राप्त करती हैं और उन्हें पहले प्राप्त करती हैं।

यादृच्छिक स्थिर

रैंडमाइज्ड स्टेटिक लोड बैलेंसिंग केवल अलग-अलग सर्वरों को बेतरतीब ढंग से कार्य सौंपने का मामला है। यह तरीका काफी अच्छा काम करता है। यदि, दूसरी ओर, कार्यों की संख्या पहले से ज्ञात है, तो अग्रिम में एक यादृच्छिक क्रमचय की गणना करना और भी अधिक कुशल है। यह प्रत्येक असाइनमेंट के लिए संचार लागत से बचा जाता है। वितरण मास्टर की अब कोई आवश्यकता नहीं है क्योंकि प्रत्येक प्रोसेसर जानता है कि उसे कौन सा कार्य सौंपा गया है। यहां तक ​​​​कि अगर कार्यों की संख्या अज्ञात है, तब भी सभी प्रोसेसरों के लिए ज्ञात छद्म-यादृच्छिक असाइनमेंट पीढ़ी के साथ संचार से बचना संभव है।

इस रणनीति का प्रदर्शन (कार्यों के एक निश्चित सेट के लिए कुल निष्पादन समय में मापा जाता है) कार्यों के अधिकतम आकार के साथ घटता है।

अन्य

बेशक, असाइनमेंट के अन्य तरीके भी हैं:

  • कम काम: कम प्रदर्शन करके सर्वर को अधिक कार्य सौंपें[clarification needed] (विधि को भारित भी किया जा सकता है)।
  • हैश: हैश टेबल के अनुसार प्रश्नों को आवंटित करें।
  • दो विकल्पों की शक्ति: यादृच्छिक रूप से दो सर्वर चुनें और दो विकल्पों में से बेहतर चुनें।[6][7]


मास्टर-वर्कर योजना

मास्टर/स्लेव (प्रौद्योगिकी) | मास्टर-वर्कर योजनाएँ सबसे सरल गतिशील भार संतुलन एल्गोरिदम में से हैं। एक मास्टर सभी श्रमिकों को कार्यभार वितरित करता है (जिसे कभी-कभी दास भी कहा जाता है)। प्रारंभ में, सभी कर्मचारी निष्क्रिय हैं और इसकी सूचना मास्टर को देते हैं। मास्टर कार्यकर्ता के अनुरोधों का जवाब देता है और उन्हें कार्य वितरित करता है। जब उसके पास देने के लिए और कोई कार्य नहीं होता है, तो वह कर्मचारियों को सूचित करता है ताकि वे कार्य माँगना बंद कर दें।

इस प्रणाली का लाभ यह है कि यह बोझ को बहुत ही निष्पक्षता से वितरित करती है। वास्तव में, यदि कोई असाइनमेंट के लिए आवश्यक समय को ध्यान में नहीं रखता है, तो निष्पादन समय ऊपर देखे गए उपसर्ग योग के बराबर होगा।

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

गुरु-कार्यकर्ता और अड़चन

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

गैर-पदानुक्रमित वास्तुकला, प्रणाली के ज्ञान के बिना: चोरी का काम

स्केलेबिलिटी की समस्याओं को दूर करने के लिए एक और तकनीक जब कार्य पूरा करने के लिए आवश्यक समय अज्ञात है, तो कार्य चोरी है।

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

परमाणु कार्यों के मामले में, दो मुख्य रणनीतियों को अलग किया जा सकता है, वे जहां कम भार वाले प्रोसेसर उच्चतम भार वाले लोगों को अपनी कंप्यूटिंग क्षमता प्रदान करते हैं, और वे सबसे अधिक भार वाली इकाइयाँ थीं जो उन्हें सौंपे गए कार्यभार को हल्का करना चाहती हैं। यह दिखाया गया है[8] कि जब नेटवर्क भारी लोड होता है, तो कम से कम लोड वाली इकाइयों के लिए उनकी उपलब्धता की पेशकश करना अधिक कुशल होता है और जब नेटवर्क हल्का लोड होता है, तो यह अतिभारित प्रोसेसर होते हैं जिन्हें सबसे निष्क्रिय लोगों से समर्थन की आवश्यकता होती है। अंगूठे का यह नियम एक्सचेंज किए गए संदेशों की संख्या को सीमित करता है।

ऐसे मामले में जहां कोई एक बड़े कार्य से शुरू होता है जिसे परमाणु स्तर से परे विभाजित नहीं किया जा सकता है, वहां एक बहुत ही कुशल एल्गोरिदम वृक्ष-आकार की गणना है,[9] जहां कार्य वृक्ष में मूल कार्य वितरित किया जाता है।

सिद्धांत

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

दक्षता

ऐसे एल्गोरिदम की दक्षता उपसर्ग योग के करीब होती है जब काम काटने और संचार का समय किए जाने वाले काम की तुलना में बहुत अधिक नहीं होता है। बहुत अधिक संचार लागतों से बचने के लिए, साझा मेमोरी पर नौकरियों की सूची की कल्पना करना संभव है। इसलिए, मास्टर प्रोसेसर के अनुरोध पर इस साझा मेमोरी पर एक अनुरोध केवल एक निश्चित स्थिति से पढ़ रहा है।

मामलों का प्रयोग करें

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

इंटरनेट आधारित सेवाएं

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

राउंड-रॉबिन डीएनएस

राउंड-रॉबिन DNS लोड संतुलन का एक वैकल्पिक तरीका है जिसके लिए समर्पित सॉफ़्टवेयर या हार्डवेयर नोड की आवश्यकता नहीं होती है। इस तकनीक में, एक डोमेन नाम के साथ कई आईपी पते जुड़े होते हैं; ग्राहकों को राउंड-रॉबिन तरीके से आईपी दिया जाता है। आईपी ​​​​ग्राहकों को एक छोटी समाप्ति के साथ सौंपा गया है, इसलिए अगली बार जब वे अनुरोध की जा रही इंटरनेट सेवा का उपयोग करते हैं, तो ग्राहक एक अलग आईपी का उपयोग करने की अधिक संभावना रखते हैं।

डीएनएस प्रतिनिधिमंडल

DNS का उपयोग करके लोड-बैलेंसिंग के लिए एक और अधिक प्रभावी तकनीक प्रत्यायोजित करना है www.example.org एक उप-डोमेन के रूप में जिसका क्षेत्र उसी सर्वर द्वारा परोसा जाता है जो वेबसाइट की सेवा कर रहे हैं। यह तकनीक विशेष रूप से अच्छी तरह से काम करती है जहां अलग-अलग सर्वर भौगोलिक रूप से इंटरनेट पर फैले हुए हैं। उदाहरण के लिए: <पूर्व>one.example.org ए 192.0.2.1 Two.example.org ए 203.0.113.2 www.example.org एनएस one.example.org www.example.org NS Two.example.org </पूर्व> हालाँकि, ज़ोन फ़ाइल के लिए www.example.org प्रत्येक सर्वर पर इस प्रकार भिन्न होता है कि प्रत्येक सर्वर A-रिकॉर्ड के रूप में अपना स्वयं का IP पता हल करता है।[10] सर्वर एक पर ज़ोन फ़ाइल के लिए www.example.org रिपोर्ट: <पूर्व>@ 192.0.2.1 में </पूर्व> सर्वर दो पर एक ही ज़ोन फ़ाइल में शामिल हैं: <पूर्व>@ 203.0.113.2 में </पूर्व>

इस तरह, जब कोई सर्वर डाउन होता है, तो उसका DNS जवाब नहीं देगा और वेब सेवा को कोई ट्रैफ़िक प्राप्त नहीं होता है। यदि एक सर्वर की लाइन भीड़भाड़ वाली है, तो DNS की अविश्वसनीयता सुनिश्चित करती है कि कम HTTP ट्रैफ़िक उस सर्वर तक पहुँचे। इसके अलावा, रिज़ॉल्वर के लिए सबसे तेज़ DNS प्रतिक्रिया लगभग हमेशा नेटवर्क के निकटतम सर्वर से होती है, जो भू-संवेदनशील लोड-बैलेंसिंग सुनिश्चित करती है[citation needed]. ए-रिकॉर्ड पर रहने के लिए एक छोटा समय यह सुनिश्चित करने में मदद करता है कि सर्वर के डाउन होने पर ट्रैफ़िक को जल्दी से डायवर्ट किया जाए। इस संभावना पर विचार किया जाना चाहिए कि इस तकनीक के कारण व्यक्तिगत ग्राहक सत्र के मध्य में अलग-अलग सर्वरों के बीच स्विच कर सकते हैं।

क्लाइंट-साइड रैंडम लोड बैलेंसिंग

संतुलन लोड करने के लिए एक अन्य दृष्टिकोण क्लाइंट को सर्वर आईपी की एक सूची देना है, और उसके बाद क्लाइंट को प्रत्येक कनेक्शन पर सूची से यादृच्छिक रूप से आईपी का चयन करना है।[11][12] यह अनिवार्य रूप से समान भार पैदा करने वाले सभी ग्राहकों और बड़ी संख्या के कानून पर निर्भर करता है[12]सर्वरों पर यथोचित फ्लैट लोड वितरण प्राप्त करने के लिए। यह दावा किया गया है कि क्लाइंट-साइड रैंडम लोड बैलेंसिंग राउंड-रॉबिन डीएनएस की तुलना में बेहतर लोड वितरण प्रदान करता है; इसे राउंड-रॉबिन डीएनएस के साथ कैशिंग मुद्दों के लिए जिम्मेदार ठहराया गया है, कि बड़े डीएनएस कैशिंग सर्वर के मामले में, राउंड-रॉबिन डीएनएस के लिए वितरण को तिरछा करते हैं, जबकि डीएनएस कैशिंग की परवाह किए बिना क्लाइंट-साइड रैंडम चयन अप्रभावित रहता है।[12]

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

सर्वर-साइड लोड बैलेंसर्स

इंटरनेट सेवाओं के लिए, एक सर्वर-साइड लोड बैलेंसर आमतौर पर एक सॉफ्टवेयर प्रोग्राम होता है जो टीसीपी और यूडीपी पोर्ट पर सुन रहा होता है जहां बाहरी क्लाइंट एक्सेस सेवाओं से जुड़ते हैं। लोड बैलेंसर बैकएंड सर्वरों में से एक को अनुरोध करता है, जो आमतौर पर लोड बैलेंसर को जवाब देता है। यह लोड बैलेंसर को ग्राहक के कार्यों के आंतरिक पृथक्करण के बारे में जानने के बिना ग्राहक को जवाब देने की अनुमति देता है। यह ग्राहकों को सीधे बैक-एंड सर्वर से संपर्क करने से भी रोकता है, जिसमें आंतरिक नेटवर्क की संरचना को छुपाकर और कर्नेल के नेटवर्क स्टैक या अन्य बंदरगाहों पर चलने वाली असंबद्ध सेवाओं पर हमलों को रोककर सुरक्षा लाभ हो सकते हैं।

कुछ लोड बैलेंसर कुछ विशेष करने के लिए एक तंत्र प्रदान करते हैं जब सभी बैकएंड सर्वर अनुपलब्ध होते हैं। इसमें बैकअप लोड बैलेंसर को अग्रेषित करना या आउटेज के संबंध में एक संदेश प्रदर्शित करना शामिल हो सकता है।

यह भी महत्वपूर्ण है कि लोड बैलेंसर स्वयं ही विफलता का एक बिंदु न बन जाए। आमतौर पर, लोड बैलेंसर्स को उच्च उपलब्धता | उच्च-उपलब्धता जोड़े में लागू किया जाता है, जो विशिष्ट एप्लिकेशन द्वारा आवश्यक होने पर सत्र दृढ़ता डेटा को भी दोहरा सकते हैं।[13] परिभाषित नेटवर्क से परे डिफरेंशियल शेयरिंग प्लेटफॉर्म पर लोड बैलेंसिंग पॉइंट को ऑफसेट करके, कुछ अनुप्रयोगों को इस समस्या के प्रति प्रतिरोधकता के साथ प्रोग्राम किया जाता है। इन कार्यों के लिए जोड़े गए अनुक्रमिक एल्गोरिदम को विशिष्ट डेटाबेस के लिए अद्वितीय लचीले मापदंडों द्वारा परिभाषित किया गया है।[14]


शेड्यूलिंग एल्गोरिदम

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

दृढ़ता

लोड-संतुलित सेवा का संचालन करते समय एक महत्वपूर्ण मुद्दा यह है कि उपयोगकर्ता के सत्र में एकाधिक अनुरोधों में रखी जाने वाली जानकारी को कैसे प्रबंधित किया जाए। यदि यह जानकारी एक बैकएंड सर्वर पर स्थानीय रूप से संग्रहीत है, तो विभिन्न बैकएंड सर्वरों पर जाने वाले बाद के अनुरोध इसे खोजने में सक्षम नहीं होंगे। यह कैश की गई जानकारी हो सकती है जिसे पुनर्गणना की जा सकती है, जिस स्थिति में एक अलग बैकएंड सर्वर के अनुरोध को लोड-बैलेंस करना केवल एक प्रदर्शन समस्या पेश करता है।[15]

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

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

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

एक अन्य समाधान प्रति-सत्र डेटा को डेटाबेस में रखना है। यह आमतौर पर प्रदर्शन के लिए खराब होता है क्योंकि यह डेटाबेस पर लोड बढ़ाता है: डेटाबेस का उपयोग प्रति-सत्र डेटा की तुलना में कम क्षणिक जानकारी को स्टोर करने के लिए किया जाता है। किसी डेटाबेस को विफलता का एकल बिंदु बनने से रोकने के लिए, और स्केलेबिलिटी में सुधार करने के लिए, डेटाबेस को अक्सर कई मशीनों में दोहराया जाता है, और उन प्रतिकृतियों में क्वेरी लोड को फैलाने के लिए लोड संतुलन का उपयोग किया जाता है। Microsoft की ASP.net स्टेट सर्वर तकनीक सत्र डेटाबेस का एक उदाहरण है। वेब फ़ार्म में सभी सर्वर अपने सत्र डेटा को स्टेट सर्वर पर संग्रहीत करते हैं और फ़ार्म में कोई भी सर्वर डेटा को पुनः प्राप्त कर सकता है।

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

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

बैलेंसर सुविधाओं को लोड करें

हार्डवेयर और सॉफ्टवेयर लोड बैलेंसर्स में कई तरह की विशेष विशेषताएं हो सकती हैं। लोड बैलेंसर की मूलभूत विशेषता शेड्यूलिंग एल्गोरिदम के अनुसार क्लस्टर में कई बैकएंड सर्वरों पर आने वाले अनुरोधों को वितरित करने में सक्षम होना है। निम्नलिखित में से अधिकांश विशेषताएं विक्रेता विशिष्ट हैं:

असममित भार
कुछ बैकएंड सर्वरों को दूसरों की तुलना में वर्कलोड का अधिक हिस्सा प्राप्त करने के लिए अनुपात को मैन्युअल रूप से असाइन किया जा सकता है। यह कभी-कभी कुछ सर्वरों के लिए अन्य की तुलना में अधिक क्षमता वाले खाते के लिए कच्चे तरीके के रूप में उपयोग किया जाता है और हमेशा वांछित के रूप में काम नहीं कर सकता है।
प्राथमिकता सक्रियण
जब उपलब्ध सर्वरों की संख्या एक निश्चित संख्या से कम हो जाती है, या लोड बहुत अधिक हो जाता है, स्टैंडबाय सर्वरों को ऑनलाइन लाया जा सकता है।
टीएलएस त्वरण
टीएलएस (या इसके पूर्ववर्ती एसएसएल) त्वरण विशेष हार्डवेयर पर क्रिप्टोग्राफ़िक प्रोटोकॉल गणनाओं को ऑफ़लोड करने की एक तकनीक है। वर्कलोड के आधार पर, ट्रांसपोर्ट लेयर सुरक्षा अनुरोध की एन्क्रिप्शन और प्रमाणीकरण आवश्यकताओं को संसाधित करना वेब सर्वर के सीपीयू पर मांग का एक प्रमुख हिस्सा बन सकता है; जैसे-जैसे मांग बढ़ती है, उपयोगकर्ताओं को धीमी प्रतिक्रिया समय दिखाई देगा, क्योंकि टीएलएस ओवरहेड वेब सर्वरों के बीच वितरित किया जाता है। वेब सर्वर पर इस मांग को हटाने के लिए, एक बैलेंसर टीएलएस कनेक्शन को समाप्त कर सकता है, एचटीटीपीएस अनुरोधों को वेब सर्वरों के लिए HTTP अनुरोधों के रूप में पारित कर सकता है। यदि बैलेंसर स्वयं अतिभारित नहीं है, तो यह एंड-यूजर्स द्वारा देखे गए प्रदर्शन को विशेष रूप से कम नहीं करता है। इस दृष्टिकोण का नकारात्मक पक्ष यह है कि सभी टीएलएस प्रसंस्करण एक उपकरण (बैलेंसर) पर केंद्रित है जो एक नई बाधा बन सकता है। कुछ लोड बैलेंसर उपकरणों में टीएलएस को प्रोसेस करने के लिए विशेष हार्डवेयर शामिल हैं। लोड बैलेंसर को अपग्रेड करने के बजाय, जो काफी महंगा समर्पित हार्डवेयर है, टीएलएस ऑफलोड को छोड़ना और कुछ वेब सर्वर जोड़ना सस्ता हो सकता है। साथ ही, Oracle/Sun जैसे कुछ सर्वर विक्रेता अब अपने CPU जैसे T2000 में क्रिप्टोग्राफ़िक एक्सेलेरेशन हार्डवेयर शामिल करते हैं। F5 नेटवर्क अपने स्थानीय ट्रैफ़िक प्रबंधक (LTM) में एक समर्पित TLS त्वरण हार्डवेयर कार्ड शामिल करता है जिसका उपयोग TLS ट्रैफ़िक को एन्क्रिप्ट और डिक्रिप्ट करने के लिए किया जाता है। बैलेंसर में टीएलएस ऑफलोडिंग का एक स्पष्ट लाभ यह है कि यह एचटीटीपीएस अनुरोध में डेटा के आधार पर संतुलन या सामग्री स्विचिंग करने में सक्षम बनाता है।
डिस्ट्रीब्यूटेड डिनायल ऑफ सर्विस (DDoS) अटैक प्रोटेक्शन
लोड बैलेंसर्स SYN बाढ़ के हमलों को कम करने और आम तौर पर सर्वर से एक अधिक कुशल प्लेटफॉर्म पर ऑफलोड काम करने के लिए SYN कुकीज़ और विलंबित-बाइंडिंग (बैक-एंड सर्वर क्लाइंट को तब तक नहीं देखते हैं जब तक कि यह अपने TCP हैंडशेक को पूरा नहीं करता है) जैसी सुविधाएँ प्रदान कर सकता है। .
HTTP संपीड़न
HTTP संपीड़न सभी आधुनिक वेब ब्राउज़रों में उपलब्ध gzip संपीड़न का उपयोग करके HTTP ऑब्जेक्ट्स के लिए स्थानांतरित किए जाने वाले डेटा की मात्रा को कम करता है। प्रतिक्रिया जितनी बड़ी होगी और ग्राहक जितना दूर होगा, यह सुविधा उतनी ही अधिक प्रतिक्रिया समय में सुधार कर सकती है। ट्रेड-ऑफ़ यह है कि यह सुविधा लोड बैलेंसर पर अतिरिक्त CPU मांग डालती है और इसके बजाय वेब सर्वर द्वारा किया जा सकता है।
टीसीपी ऑफलोड
विभिन्न विक्रेता इसके लिए अलग-अलग शर्तों का उपयोग करते हैं, लेकिन विचार यह है कि सामान्य रूप से प्रत्येक क्लाइंट से प्रत्येक HTTP अनुरोध एक अलग टीसीपी कनेक्शन है। यह सुविधा HTTP / 1.1 का उपयोग कई ग्राहकों से एक ही टीसीपी सॉकेट में बैक-एंड सर्वर के लिए कई HTTP अनुरोधों को समेकित करने के लिए करती है।
टीसीपी बफरिंग
लोड बैलेंसर सर्वर से प्रतिक्रियाओं को बफ़र कर सकता है और धीमे ग्राहकों को डेटा को स्पून-फीड कर सकता है, जिससे वेबसर्वर अन्य कार्यों के लिए एक थ्रेड को तेज़ी से मुक्त कर सकता है, अगर उसे सीधे क्लाइंट को पूरा अनुरोध भेजना होता।
डायरेक्ट सर्वर रिटर्न
विषम भार वितरण के लिए एक विकल्प, जहां अनुरोध और उत्तर के अलग-अलग नेटवर्क पथ हैं।
स्वास्थ्य जांच
बैलेंसर एप्लिकेशन लेयर हेल्थ के लिए सर्वरों का चुनाव करता है और पूल से विफल सर्वरों को हटाता है।
HTTP कैशिंग
बैलेंसर स्थिर सामग्री को संग्रहीत करता है ताकि कुछ अनुरोध hसर्वर से संपर्क किए बिना एंल्ड किया गया।
विषयवस्तु निस्पादन
कुछ बैलेंसर्स रास्ते में यातायात को मनमाने ढंग से संशोधित कर सकते हैं।
HTTP सुरक्षा
कुछ बैलेंसर HTTP त्रुटि पृष्ठों को छिपा सकते हैं, HTTP प्रतिक्रियाओं से सर्वर पहचान हेडर हटा सकते हैं, और कुकीज़ को एन्क्रिप्ट कर सकते हैं ताकि अंतिम उपयोगकर्ता उनमें हेरफेर न कर सकें।
प्राथमिकता कतार
दर को आकार देने के रूप में भी जाना जाता है, अलग-अलग ट्रैफ़िक को अलग-अलग प्राथमिकता देने की क्षमता।
सामग्री-जागरूक स्विचिंग
अधिकांश लोड बैलेंसर अनुरोध किए गए URL के आधार पर विभिन्न सर्वरों को अनुरोध भेज सकते हैं, यह मानते हुए कि अनुरोध एन्क्रिप्ट नहीं किया गया है (HTTP) या यदि यह एन्क्रिप्ट किया गया है (HTTPS के माध्यम से) तो लोड बैलेंसर पर HTTPS अनुरोध समाप्त (डिक्रिप्ट) हो गया है।
ग्राहक प्रमाणीकरण
उपयोगकर्ताओं को किसी वेबसाइट तक पहुंचने की अनुमति देने से पहले विभिन्न प्रकार के प्रमाणीकरण स्रोतों के विरुद्ध उन्हें प्रमाणित करें।
प्रोग्रामेटिक ट्रैफिक हेरफेर
कम से कम एक बैलेंसर स्क्रिप्टिंग भाषा के उपयोग की अनुमति देता है ताकि कस्टम संतुलन विधियों, मनमाना ट्रैफ़िक हेरफेर, और बहुत कुछ हो सके।
फ़ायरवॉल (नेटवर्किंग)
फ़ायरवॉल नेटवर्क सुरक्षा कारणों से बैकएंड सर्वर से सीधे कनेक्शन को रोक सकता है।
अनाधिकृत प्रवेश निरोधक प्रणाली
घुसपैठ निवारण प्रणालियाँ फ़ायरवॉल सुरक्षा द्वारा प्रदान की जाने वाली नेटवर्क/परिवहन परत के अतिरिक्त अनुप्रयोग परत सुरक्षा प्रदान करती हैं।

दूरसंचार

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

भार संतुलन का उपयोग करते हुए, दोनों लिंक हर समय उपयोग में हो सकते हैं। एक डिवाइस या प्रोग्राम सभी लिंक्स की उपलब्धता पर नज़र रखता है और पैकेट भेजने के लिए पथ का चयन करता है। एक साथ कई लिंक का उपयोग उपलब्ध बैंडविड्थ को बढ़ाता है।

सबसे छोटा पथ ब्रिजिंग

TRILL (कम्प्यूटिंग) (बहुत सारे लिंक का ट्रांसपेरेंट इंटरकनेक्शन) एक इथरनेट को मनमाना टोपोलॉजी रखने की सुविधा देता है, और कॉन्फ़िगरेशन और उपयोगकर्ता हस्तक्षेप के बिना, डिजस्ट्रा के एल्गोरिदम के माध्यम से प्रति प्रवाह जोड़ी-वार लोड विभाजन को सक्षम बनाता है। ट्रिल के लिए उत्प्रेरक बेथ इज़राइल डेकोनेस मेडिकल सेंटर में एक घटना थी जो 13 नवंबर 2002 को शुरू हुई थी।[16][17] Rbridges की अवधारणा[18] [एसआईसी] पहली बार वर्ष 2004 में इलेक्ट्रिकल और इलेक्ट्रॉनिक्स इंजीनियर्स संस्थान के लिए प्रस्तावित किया गया था,[19] जिसे 2005 में[20] जिसे ट्रिल के रूप में जाना जाता है, और 2006 से 2012 के वर्षों में अस्वीकार कर दिया[21] शॉर्टेस्ट पाथ ब्रिजिंग के रूप में जाना जाने वाला एक असंगत बदलाव तैयार किया।

IEEE ने मई 2012 में IEEE 802.1aq मानक को मंजूरी दी,[22] शॉर्टेस्ट पाथ ब्रिजिंग (SPB) के रूप में भी जाना जाता है। एसपीबी सभी लिंक को कई समान-लागत वाले रास्तों के माध्यम से सक्रिय होने की अनुमति देता है, डाउनटाइम को कम करने के लिए तेजी से अभिसरण समय प्रदान करता है, और नेटवर्क टोपोलॉजी#मेश (आंशिक रूप से जुड़ा हुआ और/या पूरी तरह से जुड़ा हुआ) में लोड संतुलन के उपयोग को सरल बनाता है, जिससे ट्रैफिक को शेयर लोड करने की अनुमति मिलती है। एक नेटवर्क के सभी पथ।[23][24] SPB को कॉन्फ़िगरेशन के दौरान मानवीय त्रुटि को वस्तुतः समाप्त करने के लिए डिज़ाइन किया गया है और प्लग-एंड-प्ले प्रकृति को संरक्षित करता है जिसने ईथरनेट को परत 2 पर वास्तविक प्रोटोकॉल के रूप में स्थापित किया है।[25]


रूटिंग 1

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

भार संतुलन का उपयोग करने का दूसरा तरीका नेटवर्क निगरानी गतिविधियों में है। लोड बैलेंसर्स का उपयोग विशाल डेटा प्रवाह को कई उप-प्रवाहों में विभाजित करने और कई नेटवर्क एनालाइज़र का उपयोग करने के लिए किया जा सकता है, प्रत्येक मूल डेटा का एक हिस्सा पढ़ रहा है। यह 10 गीगाबिट ईथरनेट या STM64 जैसे तेज नेटवर्क की निगरानी के लिए बहुत उपयोगी है, जहां तार की गति से डेटा का जटिल प्रसंस्करण संभव नहीं हो सकता है।[26]


डेटा सेंटर नेटवर्क

किसी भी दो सर्वरों के बीच कई मौजूदा रास्तों पर ट्रैफ़िक वितरित करने के लिए डेटा सेंटर नेटवर्क में लोड संतुलन का व्यापक रूप से उपयोग किया जाता है।[27] यह नेटवर्क बैंडविड्थ के अधिक कुशल उपयोग की अनुमति देता है और प्रावधान लागत को कम करता है। सामान्य तौर पर, डेटासेंटर नेटवर्क में लोड संतुलन को स्थिर या गतिशील के रूप में वर्गीकृत किया जा सकता है।

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


विफलता

लोड संतुलन का उपयोग अक्सर फेलओवर को लागू करने के लिए किया जाता है - इसके एक या अधिक घटकों की विफलता के बाद सेवा की निरंतरता। घटकों की लगातार निगरानी की जाती है (उदाहरण के लिए, ज्ञात पृष्ठों को प्राप्त करके वेब सर्वर की निगरानी की जा सकती है), और जब कोई अनुत्तरदायी हो जाता है, तो लोड बैलेंसर को सूचित किया जाता है और अब उस पर ट्रैफ़िक नहीं भेजता है। जब कोई घटक ऑनलाइन वापस आता है, तो लोड बैलेंसर उस पर ट्रैफ़िक को फिर से भेजना शुरू कर देता है। इसके काम करने के लिए, सेवा की क्षमता (N+1 रिडंडेंसी) से कम से कम एक घटक अधिक होना चाहिए। यह फेलओवर दृष्टिकोणों की तुलना में बहुत कम खर्चीला और अधिक लचीला हो सकता है, जहां प्रत्येक लाइव घटक को एक एकल बैकअप घटक के साथ जोड़ा जाता है जो विफलता (दोहरी मॉड्यूलर अतिरेक) की स्थिति में काम करता है। कुछ RAID सिस्टम समान प्रभाव के लिए हॉट स्पेयर का भी उपयोग कर सकते हैं।[28]


यह भी देखें

  • आत्मीयता का मुखौटा
  • आवेदन वितरण नियंत्रक
  • ऑटोस्केलिंग
  • क्लाउड कंप्यूटिंग
  • क्लाउड लोड बैलेंसिंग
  • सामान्य पता अतिरेक प्रोटोकॉल
  • एज कंप्यूटिंग
  • इंटरप्लेनेटरी फाइल सिस्टम
  • नेटवर्क लोड संतुलन
  • एसआरवी रिकॉर्ड


संदर्भ

  1. 1.0 1.1 Sanders, Peter; Mehlhorn, Kurt; Dietzfelbinger, Martin; Dementiev, Roman (11 September 2019). अनुक्रमिक और समानांतर एल्गोरिदम और डेटा संरचनाएं: मूल टूलबॉक्स. ISBN 978-3-030-25208-3.
  2. Liu, Qi; Cai, Weidong; Jin, Dandan; Shen, Jian; Fu, Zhangjie; Liu, Xiaodong; Linge, Nigel (30 August 2016). "एक विषम वितरित वातावरण में रन-टाइम कार्यों के निष्पादन समय पर अनुमान सटीकता". Sensors. 16 (9): 1386. Bibcode:2016Senso..16.1386L. doi:10.3390/s16091386. PMC 5038664. PMID 27589753. S2CID 391429.
  3. Alakeel, Ali (November 2009). "वितरित कंप्यूटर सिस्टम में डायनेमिक लोड बैलेंसिंग के लिए एक गाइड". International Journal of Computer Science and Network Security (IJCSNS). 10.
  4. Asghar, Sajjad; Aubanel, Eric; Bremner, David (October 2013). "एक डायनामिक मोल्डेबल जॉब शेड्यूलिंग आधारित समानांतर सैट सॉल्वर". 2013 42nd International Conference on Parallel Processing: 110–119. doi:10.1109/ICPP.2013.20. ISBN 978-0-7695-5117-3. S2CID 15124201.
  5. Punetha Sarmila, G.; Gnanambigai, N.; Dinadayalan, P. (2015). "दोष सहिष्णु पर सर्वेक्षण - क्लाउड कंप्यूटिंग में लोड संतुलन एल्गोरिदम". 2nd International Conference on Electronics and Communication Systems (ICECS): 1715–1720. doi:10.1109/ECS.2015.7124879. ISBN 978-1-4799-7225-8. S2CID 30175022.
  6. "एनजीआईएनएक्स और "दो विकल्पों की शक्ति" लोड-बैलेंसिंग एल्गोरिथम". nginx.com. 2018-11-12. Archived from the original on 2019-12-12.
  7. "टेस्ट ड्राइविंग "दो यादृच्छिक विकल्पों की शक्ति" लोड संतुलन". haproxy.com. 2019-02-15. Archived from the original on 2019-02-15.
  8. Eager, Derek L; Lazowska, Edward D; Zahorjan, John (1 March 1986). "रिसीवर द्वारा आरंभ किए गए और प्रेषक द्वारा आरंभ किए गए अनुकूली लोड शेयरिंग की तुलना". Performance Evaluation. 6 (1): 53–68. doi:10.1016/0166-5316(86)90008-8. ISSN 0166-5316.
  9. Sanders, Peter (1998). "समानांतर अनुप्रयोगों के लिए एक मॉडल के रूप में ट्री शेप्ड कम्प्यूटेशंस". Workshop on Application Based Load Balancing (Alv '98), München, 25. - 26. März 1998 - Veranst. Vom Sonderforschungsbereich 342 "Werkzeuge und Methoden für die Nutzung Paralleler Rechnerarchitekturen". Ed.: A. Bode: 123. doi:10.5445/ir/1000074497.
  10. IPv4 Address Record (A)
  11. Pattern: Client Side Load Balancing
  12. 12.0 12.1 12.2 MMOG Server-Side Architecture. Front-End Servers and Client-Side Random Load Balancing
  13. "उच्च उपलब्धता". linuxvirtualserver.org. Retrieved 2013-11-20.
  14. Ranjan, R (2010). "पीयर-टू-पीयर क्लाउड प्रोविजनिंग: सर्विस डिस्कवरी और लोड-बैलेंसिंग". Cloud Computing.
  15. 15.0 15.1 "भार संतुलन 101: नट और बोल्ट". F5 Networks. 2017-12-05. Archived from the original on 2017-12-05. Retrieved 2018-03-23.
  16. "सभी सिस्टम डाउन" (PDF). cio.com. IDG Communications, Inc. Archived from the original (PDF) on 23 September 2020. Retrieved 9 January 2022.
  17. "सभी सिस्टम डाउन". cio.com. IDG Communications, Inc. Archived from the original on 9 January 2022. Retrieved 9 January 2022.
  18. "पुल: पारदर्शी रूटिंग" (PDF). courses.cs.washington.edu. Radia Perlman, Sun Microsystems Laboratories. Archived from the original (PDF) on 9 January 2022. Retrieved 9 January 2022.
  19. "पुल: पारदर्शी रूटिंग". researchgate.net. Radia Perlman, Sun Microsystems; Donald Eastlake 3rd, Motorola.
  20. "ट्रिल ट्यूटोरियल" (PDF). postel.org. Donald E. Eastlake 3rd, Huawei.
  21. "IEEE 802.1: 802.1aq - शॉर्टेस्ट पाथ ब्रिजिंग". ieee802.org. Institute of Electrical and Electronics Engineers.
  22. Shuang Yu (8 May 2012). "IEEE APPROVES NEW IEEE 802.1aq™ SHORTEST PATH BRIDGING STANDARD". IEEE. Retrieved 2 June 2012.
  23. Peter Ashwood-Smith (24 Feb 2011). "शार्टेस्ट पाथ ब्रिजिंग IEEE 802.1aq ओवरव्यू" (PDF). Huawei. Archived from the original (PDF) on 15 May 2013. Retrieved 11 May 2012.
  24. Jim Duffy (11 May 2012). "Largest Illinois healthcare system uproots Cisco to build $40M private cloud". PC Advisor. Retrieved 11 May 2012. Shortest Path Bridging will replace Spanning Tree in the Ethernet fabric.
  25. "IEEE Approves New IEEE 802.1aq Shortest Path Bridging Standard". Tech Power Up. 7 May 2012. Retrieved 11 May 2012.
  26. Mohammad Noormohammadpour, Cauligi S. Raghavendra Minimizing Flow Completion Times using Adaptive Routing over Inter-Datacenter Wide Area Networks IEEE INFOCOM 2018 Poster Sessions, DOI:10.13140/RG.2.2.36009.90720 6 January 2019
  27. 27.0 27.1 M. Noormohammadpour, C. S. Raghavendra, "Datacenter Traffic Control: Understanding Techniques and Trade-offs," IEEE Communications Surveys & Tutorials, vol. PP, no. 99, pp. 1-1.
  28. Failover and load balancing IBM 6 January 2019


इस पेज में लापता आंतरिक लिंक की सूची

बाहरी कड़ियाँ

श्रेणी: सर्वर (कंप्यूटिंग) श्रेणी: रूटिंग श्रेणी: संतुलन प्रौद्योगिकी