हमें SQL 2005 पर एक उत्पादन DB सर्वर मिला है। सब कुछ सामान्य रूप से थोड़ी देर के लिए चलता है, लेकिन कुछ हफ़्ते बाद हम एक उल्लेखनीय प्रदर्शन ड्रॉप देखते हैं। केवल SQL सर्वर को पुनरारंभ करने से प्रदर्शन वापस सामान्य हो जाता है।
कुछ पृष्ठभूमि:
- 1200 से अधिक डेटाबेस (ज्यादातर एकल किरायेदार, कुछ बहु-किरायेदार) चल रहे हैं। इससे पहले कि कोई केवल बहु-किरायेदार के पास जाने पर व्याख्यान दे, इस संरचना को रखने के लिए वैध कारण हैं ......
- रैम 16 जीबी है। पुनः आरंभ करने के बाद, SQL सर्वर को 15 GB उपयोग पर वापस जाने में अधिक समय नहीं लगता है।
- सक्रिय डीबी कनेक्शन लगभग 80 कनेक्शन हैं - जो हमें लगता है कि काफी स्वस्थ है, यह देखते हुए कि प्रति वेब सर्वर प्रति एक कनेक्शन पूल है - इसलिए हमारे पास कनेक्शन रिसाव मुद्दा नहीं है।
हमने गैर-पीक समय में कई चीजों की कोशिश की है: - डेटा कैश को साफ़ करने के लिए DBCC DROPCLEANBUFFERS (एक CHECKPOINT के साथ) चलाएँ। इसका कोई प्रभाव नहीं है, और न ही यह रैम उपयोग को स्पष्ट करता है)। - क्वेरी योजनाओं और संग्रहीत proc कैश को खाली करने के लिए FREEPROCCACHE और FREESYSTEMCACHE चलाएं। कोई प्रभाव नहीं।
स्पष्ट रूप से SQL सर्वर को पुनरारंभ करना एक सक्रिय उत्पादन वातावरण में आदर्श नहीं है। हम कुछ याद कर रहे हैं। किसी और को इस के माध्यम से जाना?
अद्यतन: अप्रैल-28-2012 अभी भी इस समस्या से जूझ रहा है। मैंने SQL सर्वर के लिए मेमोरी को 10 जीबी तक कम कर दिया है, बस ओएस के साथ किसी भी विवाद को बाहर करने के लिए। मैं इसे कम करने के करीब पहुंच रहा हूं, लेकिन अपने अगले कदम के लिए कुछ मदद चाहिए।
यहां मैंने पाया कि SQL सर्वर को पुनरारंभ करने के बाद, पेज फ़ाइल 12.3 जीबी और 12.5 जीबी के बीच होवर करती है। यह उस तरह से दिनों तक रहेगा। कुल सर्वर थ्रेड्स 850 और 930 के बीच हैंग - एंड पर दिनों के लिए भी स्थिर और सुसंगत रहेंगे (ट्रैवेलर्स पूरी तरह ट्रैफिक के आधार पर 55 से 85 के बीच है)।
फिर, "एक घटना" है। मुझे पता नहीं है कि घटना क्या है, मैं इसे लॉग में नहीं देख सकता हूं, और ऐसा होने वाले सप्ताह या समय के अनुरूप कुछ भी नहीं देख सकता हूं, लेकिन सभी पृष्ठभूमियों में वह 14.1 या 14.2 में कूदता है GB, और थ्रेड्स 1750 और 1785 के बीच कूदते हैं।
ऐसा होने पर परफ्यूम की जाँच करना, उन थ्रेड्स में से 900 से अधिक स्क्वैल्सर हैं। इसलिए मैं sp_who2 में यह देखने के लिए जाता हूं कि ये धागे कहां से आ रहे हैं ... और वहां सिर्फ 80 या इतने db कनेक्शन का उपयोग किया गया है।
तो .... क्या किसी को कोई विचार है कि मैं कैसे पता लगा सकता हूं कि SQL सर्वर पर इन 900 थ्रेड्स में से बाकी कहां हैं, और वे क्या कर रहे हैं?
अद्यतन: जून-01-2012 अभी भी समस्या से जूझ रहा है। यह अभी भी पढ़ने वाले किसी के लिए, थ्रेड्स के ऊपर कूदने के साथ समस्या हल हो गई है। यह Autodated ComVault बैकअप सॉफ़्टवेयर के कारण हुआ था। यह बैकअप डेटाबेस की कोशिश कर रहा एक धागा बना रहा था जो अब नहीं थे (यह पिछले डेटाबेस की सूची बनाए हुए था) केवल वर्तमान डेटाबेस का बैकअप लेने के बजाय।
लेकिन - मुद्दा अभी भी बना हुआ है, और हमें हर हफ्ते फिर से शुरू करना है, कुछ दिन देना या लेना है। रैकस्पेस टीम के साथ काम करके देखें कि क्या वे किसी भी प्रकाश को बहा सकते हैं।