लोड बैलेंसर्स के साथ चिपचिपा सत्रों के लिए नकारात्मक पक्ष क्या है?


13

हमारे पास IIS7 मशीनों का एक वेब फार्म है जो बहुत अच्छा काम करता है। उनके सामने एक F5 बिग-आईपी हार्डवेयर लोड बैलेंसर है, यह भी ठीक काम कर रहा है :)

वैकल्पिक शब्द
(स्रोत: www.f5.com )

वर्तमान में हम ASP.NET State Serviceअपने OutProc राज्य को संभालने के लिए उपयोग कर रहे हैं । यह तब आवश्यक है जब आपके पास किसी भी प्रकार की सत्र जानकारी को बनाए रखने के लिए एक वेब फ़ार्म है।

मैं सोच रहा था कि क्या हम F5 बिग-आईपी पर स्टिकी सेशन कर सकते हैं और इसलिए आउटप्रो बैक से इनक्रोक में बदल सकते हैं? यदि हां, तो इसका नकारात्मक पक्ष क्या है? मैं InProc बनाम OutProc के नकारात्मक पक्ष को जानता हूं, इसलिए इसे समझाने के बारे में चिंता न करें। मैं F5 बिग-आईपी के साथ चिपचिपा सत्रों के पेशेवरों / विपक्षों में अधिक रुचि रखता हूं ।

किसी को भी कुछ प्रकाश और / या अनुभव कर सकते हैं?

जवाबों:


15

दो मुख्य चढ़ाव हैं:

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

  2. प्रॉक्सी एकल आईपी में उपयोगकर्ताओं को एकत्रित करता है, जो सभी को एक सर्वर पर भेजा जाएगा। जबकि आमतौर पर कोई नुकसान नहीं होता है, फिर से व्यक्तिगत सर्वर भार को बढ़ाने के अलावा, प्रॉक्सी एक क्लस्टर में भी काम कर सकते हैं। इस तरह की प्रणाली से आपके F5 में एक अनुरोध को जरूरी नहीं कि उसी सर्वर पर वापस भेजा जाए, अगर अनुरोध उनके प्रॉक्सी क्लस्टर में एक अलग प्रॉक्सी सर्वर से आता है।

AOL प्रॉक्सी क्लस्टर का उपयोग करते हुए एक बिंदु पर था, और लोड बैलेंसर्स और चिपचिपा सत्रों के साथ वास्तव में खराब हो गया था। अधिकांश लोड बैलेंसर्स अब सी-क्लास नेट श्रेणियों के आधार पर चिपचिपा सत्रों की पेशकश करेंगे, या एफ 5 के मामले के साथ, कुकी आधारित चिपचिपा सत्र जो एक वेब अनुरोध कुकी में अंतिम नोड को संग्रहीत करते हैं।

कुकी आधारित सत्रों को काम करते समय, मुझे उनके साथ कुछ समस्याएं हुई हैं, और आम तौर पर आईपी आधारित सत्रों का चयन करते हैं। बड़ा हो सकता है: मैं ज्यादातर आंतरिक ऐप्स पर काम कर रहा हूं - DMZ का माइलेज अलग हो सकता है।

कहा जा रहा है कि, हम चिपचिपा सत्र और इन-प्रोक सत्रों के साथ F5 चल रहे साइटों के साथ कुछ बड़ी सफलता मिली है।

आप SQL में संग्रहीत सत्र या मेमोरी सेवा से बाहर होने के विकल्प के लिए मेमेकैच्ड या वेलोसिटी जैसे मेमोरी डिस्ट्रीब्यूटेड कैशिंग सिस्टमों में से किसी एक पर भी नज़र डालना चाह सकते हैं । आप कई सर्वरों में इसे चलाने की क्षमता के साथ इन-मेमरी मेमोरी की गति के करीब पहुंच जाते हैं।


सीपीयू के अलावा, आईआईएस 7 के साथ विंडोज 2008 मशीन पर वर्तमान कनेक्शन और / या बैंडविड्थ को मूल रूप से जांचने के तरीके हैं ... यह देखने के लिए कि क्या कोई सर्वर बहुत हिट / व्यस्त हो रहा है? मूल रूप से, यह सुनिश्चित करने के लिए कि कौन से मेट्रिक्स का उपयोग करते हैं, यह सुनिश्चित करने के लिए कि सर्वर ब्लास्ट नहीं हो रहे हैं?
शुद्ध। क्रोम जूल 27'09

हमने कुछ समय पहले चिपचिपा आईपी और चिपचिपा कुकी सत्रों का मिश्रण इस्तेमाल किया था और असमान वितरण पाया, लेकिन ऐसा नहीं था। एओएल प्रॉक्सी क्लस्टर आईपी क्लस्टरिंग के लिए एक बुरा सपना था और हमें इसके अपवादों को हार्डकोड करना पड़ा।
ericlaw

नेटिव परफेक्ट काउंटर सक्रिय HTTP कनेक्शन दिखाएगा।
क्रिस्टोफर_जी_विस

@Christopher_G_Lewis क्या आप F5 पर कुकी आधारित सत्रों के साथ आने वाली समस्याओं पर थोड़ा विस्तार करना चाहेंगे?
यूजीन बेरेसोव्स्की

5

मैंने हाल ही में TechNet में "ASP.NET एप्लिकेशन के लिए स्केलेबिलिटी प्रदान करना" के बारे में एक शानदार लेख पढ़ा। यह प्रत्येक संभव समाधान के पेशेवरों और विपक्षों में चला गया। पढ़ें:

TechNet जून 2009 - ASP.NET एप्लिकेशन के लिए स्केलेबिलिटी प्रदान करना


4

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

मैं चिपचिपा सत्रों को खराब एप्लिकेशन आर्किटेक्चर और / या खराब प्रोग्रामिंग का एक मजबूत संकेतक मानता हूं। "हर कीमत पर बचें" मेरा आदर्श वाक्य है।


रखरखाव पर उत्कृष्ट विचार। हम क्लस्टर से बाहर निकालने से बहुत पहले एक सर्वर पर एक DRAIN फेंकते हैं। DRAIN का मतलब है कि वर्तमान सत्र संसाधित होते हैं, लेकिन उस सर्वर पर कोई नया सत्र शुरू नहीं हुआ।
क्रिस्टोफर_जी_विविस

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

क्या आप किसी सर्वर से F5 पर कोई कॉन्फिगरेशन किए बिना DRAIN कर सकते हैं? मूल रूप से, हमारे पास F5 तक पहुंच नहीं है (यह हमारे लिए प्रबंधित होस्टिंग परिदृश्य में है) .. लेकिन हमारे वेब सर्वर तक हमारी पूरी पहुंच है .. तो क्या आप किसी वेबसाइट में फ़ाइल या किसी चीज़ को छोड़ कर DR DR कर सकते हैं?
शुद्ध। क्रोम जूल 28'09

हमारे F5 का सर्वर अप / सर्वर डाउन / ड्रेन वेब साइट में एक टेक्स्ट फाइल के माध्यम से होता है - फाइल का संदर्भ "UP / DOWN / DRAIN" है। वे क्या देख रहे हैं यह निर्धारित करने के लिए अपने IIS लॉग की जांच करें। ध्यान दें कि कभी-कभी F5 केवल TCP / IP पोर्ट पर SYN / ACK कर रहा होता है, इस स्थिति में आपको अपने होस्ट को F5 का कॉन्फिगरेशन बदलना होगा।
क्रिस्टोफर_जी_विस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.