2009-03-26 11 views
21

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

हम अपने लोड बैलेंसर पर "चिपचिपा सत्र" कॉन्फ़िगरेशन को हटाने में सक्षम होने पर विचार कर रहे हैं, क्योंकि हमारे ट्रैफ़िक लोड सर्वर के कारण सर्वर ओवरलोड हो सकते हैं। हम एक और संतुलित दृष्टिकोण के साथ जाना चाहते हैं, लेकिन सत्र का उपयोग करने में सक्षम होना चाहिए।

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

1.) इनप्रोक से स्टेटसेवर के स्विच के साथ किसी संभावित क्रमिकरण के मुद्दों के अलावा, क्या उपरोक्त सूचीबद्ध वातावरण के साथ सत्र ऑब्जेक्ट खोने या त्रुटियों को उत्पन्न करने के साथ कोई प्रमुख ज्ञात समस्याएं हैं?

2.) विफलता के एक बिंदु के अलावा, और धीरे-धीरे धीमे प्रदर्शन में कोई अन्य गठिया है जिसे हमें स्टेटसेवर का उपयोग करने के बारे में पता होना चाहिए।

3.) क्या कोई मेट्रिक्स है जो तीन प्रकार के राज्य भंडारण के बीच प्रदर्शन अंतर दिखाता है?

+0

सत्र राज्यों में कितनी जानकारी संग्रहीत की जा रही है? – Keltex

+0

अभी हमारे पास कोई सुराग नहीं है। विभिन्न समूहों द्वारा विकसित 150 से अधिक विभिन्न अनुप्रयोग हैं। –

उत्तर

23

यहाँ asp.net राज्य पर एक सभ्य पूछे जाने वाले प्रश्न है:

  • एक वेब खेत में, सुनिश्चित करें कि आप में एक ही MachineKey बनाती हैं: http://www.eggheadcafe.com/articles/20021016.asp

    कि अनुच्छेद से, यहाँ StateServer बारे में कुछ जानकारी है आपके सभी वेब सर्वर। इसे कैसे करें पर KB 313091 देखें।

  • इसके अलावा, सुनिश्चित करें कि आपकी वस्तुएं क्रमबद्ध हैं। विवरण के लिए KB 312112 देखें।
  • वेब फार्म में विभिन्न वेब सर्वरों पर सत्र स्थिति को बनाए रखने के लिए, आईआईएस मेटाबेस में वेबसाइट का अनुप्रयोग पथ (उदाहरण के लिए \ एलएम \ डब्ल्यू 3 एसवीसी \ 2) वेब फार्म में सभी वेब सर्वरों में समान होना चाहिए । विवरण के लिए KB 325056 देखें
+3

+1। –

+0

आईआईएस पथ के बारे में अंतिम बिंदु दिलचस्प है, क्या किसी को पता है कि यह अभी भी आईआईएस 7 + में लागू होता है? इसके अलावा, आप आईआईएस 7 में इस पथ को कैसे देख सकते हैं? –

+0

हां यह अभी भी लागू होता है। अधिक जानकारी के लिए [serverfault पर यह उत्तर] देखें (http://serverfault.com/questions/288981/load-balanced-iis-7-5-web-server-asp-net- सत्र-state-problem)। Serializable ऑब्जेक्ट के लिए – Oliver

0

हम कुछ सौ उपयोगकर्ताओं के लिए केवल दो नोड्स के साथ एक बहुत छोटे वेब फार्म के लिए स्टेटसेवर का उपयोग कर रहे हैं।

मैं इसके संचालन के लिए ज़िम्मेदार नहीं हूं लेकिन मुझे दो वर्षों में केवल दो मुद्दों को याद है जहां सेवा को फिर से शुरू करना पड़ा क्योंकि यह दुर्घटनाग्रस्त हो गया था।

+0

मुझे लगता है कि यह एक पुरानी पोस्ट है, लेकिन सेवा दुर्घटनाग्रस्त होने पर लक्षण क्या थे? क्या आपने अभी "अमान्य सत्र स्थिति" त्रुटि संदेश देखना शुरू कर दिया था, या यह अधिक गुप्त था? – Ads

+0

@ विज्ञापन क्षमा करें मुझे याद नहीं है लेकिन मुझे लगता है कि यह सिर्फ दुर्घटनाग्रस्त हो गया। मशीन कुंजी कॉल आउट के लिए – laktak

3

मैंने केवल एसक्यूएल और इन-प्रो का उपयोग किया है। लेकिन ये 3 जो एसक्यूएल सर्वर का उपयोग करते समय लागू होते हैं, वे भी लागू होते हैं:

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

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

क्या आपने यह सुनिश्चित करने के लिए अपने कोड की विस्तार से समीक्षा की है कि सबकुछ प्रक्रिया से बाहर और LAN में कुशलता से किया जा सकता है?

क्या आप अपने सिस्टम में मुख्य प्रदर्शन समस्या को हल कर रहे हैं? मैं पूछता हूं क्योंकि डेटाबेस विवाद का ठेठ स्रोत है।

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

+0

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

2

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

मुझे लगता है कि आप इसके लिए अन्य उत्पादों का पता लगाने के लिए पूर्ण सर्वोत्तम प्राप्त कर सकते हैं। एक मुफ्त विकल्प Velocity होगा लेकिन यह अभी भी जारी नहीं है। और एक और व्यापक लेकिन साबित उत्पाद (वास्तव में बहुत महंगा) NCache होगा। यह कम लागत के साथ आपके serilizations में भी मदद करेगा, अगर आप अपने एपीआई का उपयोग करते हैं तो यह भी बेहतर परिणाम होगा।

एक नज़र डालें और देखें कि आपके लिए कौन सा सबसे अच्छा लग रहा है।

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

नीचे पंक्ति: हम वेग का मूल्यांकन कर रहे हैं क्योंकि एनसीएच्स वास्तव में महंगा है। हालांकि फायदे विशाल हैं।

+1

उन लोगों के लिए जो कैशिंग सर्वर की तलाश में हैं, आप साझाकैच/इंडेक्सबॉक्स को भी देख सकते हैं ... सुंदर ठोस कैशिंग टूल। – bbqchickenrobot

+0

उन लोगों के लिए जो अधिक अद्यतित समाधान की तलाश में हैं: [स्कॉट हंसेलमैन ने एक अच्छा लेखन-अप किया था] (http://www.hanselman.com/blog/InstallingConfiguringAndUsingWindowsServerAppFabricAndTheVelocityMemoryCacheIn10Minutes.aspx) हाल ही में जारी वेग को कैसे सेट अप करें मेम कैश, उदाहरण के लिए [एएसपी.नेट सत्र राज्य सर्वर] के रूप में (http://msdn.microsoft.com/en-us/library/ee790859.aspx)। – Oliver

+0

हमारे पास वेग कैश (एकेए एपफैब्रिक) के खिलाफ एएसपीनेट राज्य सेवा का परीक्षण किया गया है, परिणाम बहुत अंतर हैं। एएसपीनेट राज्य सेवा भारी मात्रा में (250% तेज के करीब) ऐपफ़ैब से बेहतर प्रदर्शन करती है और ऐपफ़ैब को एक टन अधिक मेमोरी की आवश्यकता होती है और क्लस्टर में कॉन्फ़िगर करना अधिक कठिन होता है। सत्र स्थिति के लिए AppFabric का उपयोग न करें – nachonachoman

0

मैं स्वीकार किए जाते हैं जवाब देने के लिए एक और एक और बात करने के लिए करना चाहते हैं:

  • यकीन है कि ढांचे DLLs के संस्करण में ही है सुनिश्चित करें।

मेरे मामले में System.Web dll संस्करण अलग थे क्योंकि कुछ विंडोज अपडेट खेतों के सर्वरों में से एक पर छोड़ दिए गए थे।

संबंधित मुद्दे