मुझे लगता है कि एक बहु-वेब सर्वर और एक वितरित द्वितीय स्तर कैश कर सकता है -और शायद-साथ-साथ मिलना चाहिए।
सबसे पहले अगर हम उदाहरण के लिए memcached लेते हैं, तो यह वितरित ऑब्जेक्ट को संग्रहीत करता है ताकि यदि आप इसका उपयोग नहीं कर रहे हैं, तो आप उस पर स्विच कर सकते हैं। यह काम करता हैं।
दूसरा, मुझे लगता है कि आप बढ़ते वेब अनुरोधों का जवाब देने के लिए वेब-सर्वर फार्म पेश कर रहे हैं जो बदले में डेटा के लिए बढ़ते अनुरोधों का मतलब होगा। यदि आप अपनी कैशिंग को मार देते हैं, तो इससे कोई फ़र्क नहीं पड़ता कि आप अपने डेटाबेस को कितना अनुकूलित करते हैं, जिसे आप क्वेरी के साथ फेंकने जा रहे हैं। तो आप अपने निष्पादन समय में सुधार करने जा रहे हैं, लेकिन जब आप डेटाबेस को अपना डेटा वापस करने की प्रतीक्षा करते हैं।
यह विशेष रूप से इस मामले के लिए सच है कि वेब-नोड 1 अनुरोध डेटासेट ए और वेब-नोड 2 अनुरोध डेटासेट ए -> आप एक ही प्रश्न दो बार करने जा रहे हैं जबकि दूसरे स्तर के कैशिंग के साथ आप केवल एक बार ऐसा करते हैं।
तो मेरी सिफारिश है:
अपने दूसरे स्तर कैश मार नहीं करो। आपने इसे लागू करने के लिए पहले ही संसाधन खर्च किए हैं और इसे अक्षम करके आप अपने आवेदन के प्रदर्शन में सुधार नहीं करेंगे। यहां तक कि किसी भी होने की तुलना में memcached का एक भी नोड तेजी से होने जा रहा है।
अपने डेटाबेस संचालन को अनुकूलित करें। इसका मतलब डेटाबेस पक्ष (इंडेक्स, विचार, एसपी, फ़ंक्शंस, शायद केवल पढ़ने के लिए एक क्लस्टर और केवल-पढ़ने वाले नोड्स के साथ क्लस्टर) और एप्लिकेशन साइड (आपके प्रश्नों को अनुकूलित करें, आलसी/उत्सुक लोडिंग प्रोफाइलिंग, डेटा को प्राप्त न करें की आवश्यकता नहीं है, भविष्य, MutliQuery, MultiCriteria के माध्यम से एकल-राउंड-ट्रिप में एकाधिक प्रश्नों को गठबंधन करें)
अपने दूसरे-स्तर के कैश कार्यान्वयन को अनुकूलित करें। ऐसे डेटासेट हैं जिनके पास अनंत समाप्ति तिथि है, और इस प्रकार आप केवल उनके लिए डीबी से पूछते हैं, और ऐसे डेटासेट हैं जिनके पास छोटी समाप्ति तिथियां हैं, और इस प्रकार महंगे प्रश्नों को अधिक बार निष्पादित किया जाता है। अपने प्रश्नों और डीबी को अनुकूलित करके आप प्रश्नों के प्रदर्शन में सुधार करने जा रहे हैं लेकिन दूसरा-स्तर कैश आपकी त्वचा को चरम लोड पर सहेजने जा रहा है जहां शॉर्ट-समाप्ति तिथि डेटासेट कैश द्वारा अधिक बार लाया जाएगा।
तो शाब्दिक प्रश्नों का उपयोग कर हर रोज आपरेशन डेटाबेस के पूर्ण-पाठ क्षमताओं का उपयोग करें या और भी बेहतर, Lucene.NET की तरह एक स्वतंत्र सेवा (जो NHibernate.Search के माध्यम से NHibernate के साथ एकीकृत किया जा सकता)
क्या आप कुछ गड़िया या मुद्दों के बारे में चिंता करने के लिए उजागर कर सकते हैं। मापने के लिए आपके द्वारा उपयोग किए जाने वाले सर्वोत्तम मीट्रिक भी क्या हैं ?? – leora