SQL सर्वर विश्लेषण सेवाओं के साथ SQL सर्वर मेमोरी को कैसे संतुलित करें


11

हमारे पास कई सिस्टम हैं जिनमें समान कॉन्फ़िगरेशन है

  • एक सर्वर (आभासी या भौतिक)
  • SQL सर्वर (SQL) और SQL सर्वर विश्लेषण सर्वर (AS) चलाना
  • कई कोर
  • 16 जीबी रैम

प्रत्येक रात एसक्यूएल सर्वर 2-3 घंटे की प्रोसेसिंग करता है, इसके बाद 2-3 घंटे की एएस प्रोसेसिंग करता है। फिर दिन भर में केवल एएस को ही समझा जाता है।

यह मानते हुए कि यह एक समर्पित सर्वर है, और कोई अन्य ऐप चिंता का विषय नहीं है, और यह कि प्रोसेसिंग के दो सेट पूरी तरह से सिंक्रोनस हैं - कोई भी ओवरलैप हमेशा एक के बाद एक नहीं होता है - मैं SQL और AS सर्वर मेमोरी लिमिट को कैसे सेट कर सकता हूं।

यह पूछने का कारण यह है कि अगर मैंने SQL के लिए कोई सीमा निर्धारित नहीं की है तो यह सभी मेमोरी को हड़प सकता है। हालाँकि - मेरी समझ में यह है कि SQL खुशी से इस मेमोरी को त्याग देगा अगर:

  • यह इसका उपयोग नहीं कर रहा है और

  • एक अन्य सेवा / कार्यक्रम इसका अनुरोध करता है।

इसलिए एक तार्किक दृष्टिकोण से मेरा मानना ​​है कि एसक्यूएल को इसकी आवश्यकता के अनुसार लेने की अनुमति है, लेकिन मैं एएस के बारे में इतना निश्चित नहीं हूं TotalMemoryLimit। ' मुझे यकीन नहीं है कि अगर एएस इसे याद दिलाएगा। वास्तव में अधिक पढ़ने से मुझे विश्वास हो जाता है कि यह सब लेने देना गलत है।

क्या इसका मतलब यह है कि मुझे वास्तव में दोनों के लिए सीमा निर्धारित करने की आवश्यकता है? मैं इस उलझन में हूं कि सबसे अच्छी प्रथाएं क्या होनी चाहिए, और प्रक्रियाओं को ओवरलैप न करने के लिए हमें क्या मापने की आवश्यकता है।

आशा है कि यह समझ में आता है।

जवाबों:


9

मुझे लगता है कि एक निर्धारित कार्य या सेवा के द्वारा दोनों सेवाओं को हाथ में लेना संभव है:

(ए) एसक्यूएल सर्वर के रात के प्रसंस्करण से पहले, एसएसएएस सेवा को बंद कर देता है, और एसक्यूएल सर्वर को आवंटित मेमोरी को बढ़ाता है

(b) SQL सर्वर द्वारा इसकी प्रोसेसिंग करने के बाद, अधिकतम सर्वर मेमोरी को कम करता है और SQL सर्वर को पुनरारंभ करता है

(c) SSAS शुरू करता है

यह मानता है कि SQL सर्वर संसाधित करते समय SSAS को ऑनलाइन होना आवश्यक नहीं है। अन्यथा परिवर्तन (ए) "शट डाउन" से "रीस्टार्ट" हो जाता है ... जब तक एसएसएएस सक्रिय रूप से कुछ नहीं कर रहा है जब SQL सर्वर प्रसंस्करण कर रहा है, तो कोई चिंता नहीं होनी चाहिए कि यह मेमोरी वापस चुरा लेगा।

यह भी मानता है कि आप चाहते हैं कि प्रत्येक सेवा मेमोरी खपत को ओवरलैप करें, और अलग-अलग समय पर एक ही मेमोरी का उपयोग करें - मुझे यकीन है कि उनके संचालन स्थान को पूरी तरह से अलग करने के लिए, सबसे खराब स्थिति में, होस्ट करने के लिए आत्मीयता / NUMA आदि के साथ तरीके हैं। उन्हें विभिन्न मशीनों पर।


मुझे लगता है कि शायद हमें SASS प्रोसेसिंग के बाद भी SQL को पुनरारंभ करना चाहिए - क्योंकि यह बड़ी रीड (डेटा वेयरहाउस) करता है।
प्रीत संघ

वास्तव में इसके बारे में सोचना - SQL सर्वर को पुनः आरंभ करना वास्तव में सभी SQL प्रसंस्करण को प्रभावित नहीं करेगा?
प्रीत संघ

1
@Preet हाँ, यह बात नहीं है?
हारून बर्ट्रेंड

7

क्या SQL और SSAS को एक ही समय में चलाने की आवश्यकता है? यदि नहीं, तो क्या आप 100% सुनिश्चित हैं?

मैं SQL और SSAS के लिए मेमोरी सेटिंग को देखने के लिए देखूंगा कि क्या वे एक दूसरे के साथ सहयोग कर सकते हैं।

हमें OS, अन्य प्रक्रियाओं और बहु-पृष्ठ आवंटन के लिए कुछ मेमोरी छोड़ने की आवश्यकता होगी। शायद 4 जी?

कुछ इस तरह से आजमाएं ...

SQL साइड पर, Max Server Memory को 12G और Min Server मेमोरी को 6G पर सेट करें।

SSAS की ओर, TotalMemoryLimit को 12G और LowMemoryLimit को 6G पर सेट करें।

इसके अलावा, मेमोरी में लॉक पेज को सक्षम न करें।

इन संख्याओं को ऊपर या नीचे समायोजित करते हुए, कुछ पुनरावृत्तियों को आज़माएँ।

यदि यह सिर्फ काम नहीं करता है, और आप एक तथ्य के लिए जानते हैं कि एसक्यूएल और एसएसएएस को एक ही समय में चलाने की आवश्यकता नहीं है, तो मैं हारून के शेड्यूलिंग नौकरियों के सुझावों को सेवाओं को बंद करने और चालू करने की कोशिश करूंगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.