2009-02-20 11 views
5

हमारे पास 22 HTTP सर्वर हैं जो प्रत्येक अपने स्वयं के व्यक्तिगत एएसपी.NET कैश चला रहे हैं। वे केवल पढ़ने के लिए डीबी से पढ़ते हैं जो केवल चोटी के घंटे से अद्यतन होता है।किसी वितरित खेत पर एएसपी.नेट के साथ मेमकैड का उपयोग करने वाला कोई भी व्यक्ति?

हम एक फ़ाइल निर्भरता का उपयोग कैश रद्द करने के लिए, सर्वर उत्साह करने के लिए "नया अप" उनके कैश ... इस गलती से पीक आवर्स के दौरान किया जाता है, यह नीचे हमारे डीबी क्लस्टर खुला के अचानक जल प्रलय की वजह से लाने जोखिम कनेक्शन।

क्या किसी ने इस वितरित रूप में एएसपी.NET के साथ memcached का उपयोग किया है? ऐसा लगता है कि यह केवल एक कैश बनाने और डीबी 21 गुना कम करने के लिए एक बड़ा फायदा प्रदान करेगा, जबकि memcached प्रत्येक बॉक्स पर इसे वितरित करने के लिए संभाल लेंगे।

यदि आपके पास है, तो क्या आप इसे HTTP बॉक्स के समान बॉक्स पर रखते हैं, या आप एक अलग कैश टियर चलाते हैं? यह कितना अच्छा है, क्या हम उम्मीद कर सकते हैं कि इसे शक्तिशाली सर्वर की आवश्यकता हो? हमारा कामकाजी डेटासेट बड़ा नहीं है (हम इसे प्रत्येक HTTP बॉक्स पर ठीक से 4 गीगा मेमोरी में फिट करते हैं)।

आप अमान्यता को कैसे संभालेंगे?

अनुभव और युद्ध कहानियों की तलाश में।

संपादित करें: Win2k3, IIS6, 64-बिट सर्वर ... प्रति बॉक्स 4 गीगा (मुझे विश्वास है, जब हम 64-बिट सर्वर में बदल जाते हैं तो हम इसे 16 गीगा तक बढ़ा सकते हैं)।

उत्तर

5

memcached वितरित या एक memcached खेत में प्रत्येक बॉक्स के लिए एक कैश को दोहराने नहीं है "memcached प्रत्येक बॉक्स पर वितरित संभाल होगा"। Memcached क्लाइंट मूल रूप से कुंजी है और उस हैश के आधार पर एक कैश सर्वर चुनता है। जब memcached सर्वरों में से एक विफल हो जाता है तो आप उस सर्वर पर जो भी कैश किए गए आइटम मौजूद होते हैं, खो देंगे, हालांकि, ग्राहक विफलता को पहचान लेगा और एक अलग सर्वर पर मान लिखना शुरू कर देगा। यह मामला है, आपके कोड को कैश में गुम वस्तुओं के लिए खाते की आवश्यकता है और यदि आवश्यक हो तो उन्हें रीसेट करें।

यह आलेख मेमकैच आर्किटेक्चर पर अधिक विस्तार से चर्चा करता है: How memcached works

+0

धन्यवाद, मैंने बस उस साइट पर सबकुछ पढ़ने में एक घंटा बिताया। – FlySwat

1

ने उन्हें एक साथ उपयोग नहीं किया है, लेकिन मैंने उन्हें अलग-अलग परियोजनाओं पर उपयोग किया है।

आखिरकार मैंने दस्तावेज स्पष्ट रूप से कहा कि वेब सर्वर के साथ साझा करना ठीक था।

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

यह अच्छी तरह से काम करता था और तेजी से मुझे इसके साथ कोई समस्या नहीं थी।

ओह, प्रोजेक्ट पर अमान्यता स्पष्ट थी जिसका मैंने उपयोग किया था। सुनिश्चित नहीं है कि इसके लिए अन्य तरीके क्या हैं।

2

सर्वश्रेष्ठ अभ्यास (memcached साइट के अनुसार) आपके वेब सर्वर ऐप के समान बॉक्स पर memcached चलाने के लिए है या अन्यथा आप http कॉल कर रहे हैं (जो कि यह बुरा नहीं है, लेकिन यह इष्टतम नहीं है)। यदि आप 64-बिट ऐप सर्वर चला रहे हैं (जो आपको शायद मेमकैच चलाने जा रहे हैं), तो आप प्रत्येक सर्वर को लोड ऑफ मेमोरी के साथ लोड कर सकते हैं और यह memcached के लिए उपलब्ध होगा। Memcached द्वारा उपयोग किए जाने वाले CPU संसाधनों के तरीके में बहुत कुछ नहीं है, इसलिए यदि आपका वर्तमान ऐप सर्वर बहुत कर नहीं लगाया जाता है, तो यह वैसे ही रहेगा।

0

Velocity की जांच करने योग्य मूल्य, जो माइक्रोसॉफ्ट द्वारा प्रदान किया गया एक वितरित कैश है। मैं आपको memcached के लिए बिंदु-दर-बिंदु तुलना नहीं दे सकता, लेकिन वेग एएसपी.NET के साथ एकीकृत है और अधिक विकास और एकीकरण प्राप्त करना जारी रखेगा।

1

यदि आप अपने memcached सर्वरों पर प्रतिकृति प्राप्त करना चाहते हैं तो शायद repcached पर एक नज़र डालें। यह memcached के लिए एक पैच है जो प्रतिकृति भाग संभालती है।

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

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