SQL सर्वर अधिकतम मेमोरी, पेज फ़ाइल, अधिकतम डिग्री समानता


15

तीन प्रश्न उम्मीद करते हैं कि आप ब्रह्मांड के डीबीए स्वामी जवाब दे सकते हैं:


  1. मुझे पता है कि SQL Server की अधिकतम मेमोरी सेट करना सबसे अच्छा अभ्यास है। इसलिए यदि 44 जीबी रैम वाले सर्वर में SQL सर्वर स्थापित है, तो हमें SQL सर्वर अधिकतम मेमोरी को 37GB के लगभग सेट करना चाहिए।

लेकिन यदि SQL विश्लेषण सेवा और SQL रिपोर्टिंग सेवा SQL सर्वर के समान सर्वर पर स्थापित हैं तो हमें क्या सेट करना चाहिए? क्या तब SQL सर्वर की अधिकतम मेमोरी को 22GB रैम पर सेट करना बेहतर होता है, इसलिए विश्लेषण अन्य 22GB RAM को ले सकता है?


  1. 44 जीबी रैम के साथ SQL सर्वर चलाने वाले सर्वर पर पेज फ़ाइल का आकार सेट करने के लिए सबसे अच्छा अभ्यास क्या है? मैंने ब्रेंट ओज़र ( http://www.brentozar.com/archive/2014/06/sql-server-setup-checklist-free-ebook-download/ ) पर निम्न पढ़ा :

SQL सर्वर doest को एक विशाल पृष्ठ फ़ाइल की आवश्यकता नहीं है। यदि आप सर्वर पर अन्य एप्लिकेशन इंस्टॉल कर रहे हैं (जो हम अनुशंसा नहीं करते हैं - SQL सर्वर को अलग किया जाना चाहिए)। आपको एक बड़ी पृष्ठ फ़ाइल की आवश्यकता हो सकती है। यदि SQL सर्वर बॉक्स पर चलने वाली एकमात्र प्रमुख सेवा है, तो हम आमतौर पर सिस्टम ड्राइव पर 2GB आकार की पेज फाइल बनाते हैं।

Microsoft का कहना है कि हमें पेज फाइल सिस्टम को 1.5x रैम पर प्रबंधित करना चाहिए जो रेमस द्वारा दी गई सलाह से मेल खाता है (देखें -> http://rusanu.com/2009/11/22/system-pagefile-size-on-machines-with -लगाव-राम / )।

इसलिए हमारे सर्वर पर 44GB RAM के साथ हमारे पास SQL ​​सर्वर SQL विश्लेषण सेवा और SQL रिपोर्टिंग सेवा के बगल में स्थापित है। हमें पेज फ़ाइल को किस आकार में सेट करना चाहिए?


  1. SharePoint SQL सर्वर के लिए, जो SharePoint के फ़ार्म का हिस्सा है और जहाँ SharePoint यह डेटाबेस है, समानांतरवाद की अधिकतम डिग्री 1 पर सेट होनी चाहिए। अब हमारे पास एक ऐसा सर्वर है जो SharePoint फ़ार्म का हिस्सा नहीं है (इसे sql2 कहें) सर्वर हमारे पास SQL ​​सर्वर, SQL विश्लेषण और रिपोर्टिंग स्थापित है। SharePoint इस सर्वर पर अपने डेटाबेस को संग्रहीत नहीं करता है, लेकिन हमारे पास रिपोर्टिंग और विश्लेषण डेटाबेस / क्यूब्स हैं जो कि SharePoint पढ़ता है और लिखता है।

ब्रेंट ओजर कहते हैं:

अंगूठे का नियम: इसे एक एकल NUMA नोड (प्रोसेसर) सॉकेट में भौतिक कोर की संख्या में सेट करें

जब यह 4 VCPU है तो अधिकतम समानता के लिए हमें इस SQL ​​सर्वर उदाहरण पर क्या कॉन्फ़िगर करना चाहिए?


आशा है कि आप लोग न केवल मुझे बल्कि अधिक एसक्यूएल को इंटरवेब पर जंगल की तुलना में सर्वोत्तम प्रथाओं में थोड़ी अधिक जानकारी देते हैं।

जवाबों:


12

आपके 3 प्रश्न स्पर्श करते हैं max memory, page fileऔर max dop setting

अधिकतम स्मृति


यदि सर्वर केवल विश्लेषण सेवाओं के बिना SQL सर्वर समर्पित है (क्योंकि SSAS एक और जानवर है), तो ग्लेन की सिफारिश की गई सर्वोत्तम अभ्यास एक अच्छा प्रारंभिक बिंदु है । अतिरिक्त घटकों के लिए, आपको अधिकतम स्मृति को कॉन्फ़िगर करने के तरीके पर जोनाथन के ब्लॉग का उल्लेख करना चाहिए ।

मैंने SQL सर्वर अधिकतम और न्यूनतम मेमोरी कॉन्फ़िगरेशन पर जवाब दिया है । यदि आपके सर्वर उदाहरण पर बहुत सारे SSIS पैकेज चल रहे हैं तो यह मददगार होगा ।

पृष्ठ की फाइल


मैं आम तौर पर इसे C:\ड्राइव पर ड्राइव से दूर सेट करता हूं जिसमें पर्याप्त डिस्क स्थान होता है। मैं रेमस और ब्रेंट की सिफारिश से सहमत हूं। यह होना चाहिए PAGE FILE FOR SQL SERVER = 1.5 * RAM। पेज फाइल तब उपयोगी होगी जब आप अपने आप को ऐसी स्थिति में सामना करेंगे, जिसमें आपको समस्या निवारण के लिए एक पूर्ण मेमोरी डंप (आमतौर पर Microsoft सीएसएस द्वारा पूछा जाता है) लेना होगा।

पढ़ें विंडोज KB 889,654 अच्छी तरह के 64-बिट संस्करणों के लिए उपयुक्त पृष्ठ फ़ाइल आकार निर्धारित करने के लिए कैसे और बक वुडी पृष्ठ फ़ाइल यहाँ के बारे में वार्ता

मैक्स डीओपी सेटिंग


शेयरपॉइंट के लिए इसकी सिफारिश की गई है कि maxdop = 1उदाहरण को विस्तृत किया जाए। एक सामान्य sql सर्वर के लिए, मैं आपको निम्नलिखित सुझाव दूंगा - SQL सर्वर पर MAXDOP की गणना करने का एक अच्छा, दोहरावदार तरीका क्या है? मेरे पास एक पटकथा लिखी गई है जो आपके लिए इसकी गणना करेगी।

नीचे गिस्ट है ( KB 2806535 में भी इसी बात का उल्लेख है):

8 or less processors    ===> 0 to N (where N= no. of processors)
More than 8 processors  ===> 8
NUMA configured         ===> MAXDOP should not exceed no of CPUs assigned to each 
                                 NUMA node with max value capped to 8
Hyper threading Enabled ===> Should not exceed the number of physical processors.

एक साइड नोट के रूप में, मैं आपको पढ़ने के लिए सुझाव दूंगा - SQL सर्वर 2012 और SQL सर्वर 2014 के लिए अनुशंसित अपडेट और कॉन्फ़िगरेशन विकल्प उच्च-प्रदर्शन वर्कलोड के साथ


ध्यान देने वाली एक बात यह है कि बक वुडी के ब्लॉग पोस्ट में ऊपर लिखा गया है, रेमस टिप्पणी करता है "क्या दिन बचाता है AWE: AWE के माध्यम से आरक्षित मेमोरी में पेज फ़ाइल आरक्षण होने की आवश्यकता नहीं है (क्योंकि भौतिक रैम में बंद है और इसलिए यह नहीं हो सकता है पृष्ठांकित)। X64 पर AWE का उपयोग स्वचालित है। " जो AWE के साथ देखा जाता है, हमें एक बड़े पृष्ठ की आवश्यकता नहीं है।
जेसन कार्टर

@ क्या आपने कहा "मैं रेमस और ब्रेंट की सिफारिश से सहमत हूं"। लेकिन ब्रेंट सेटअप गाइड (ऊपर ओपी द्वारा उद्धृत) और रेमस अनुच्छेद के माध्यम से जाने के बाद, वे विरोधाभासी हैं। तो मेरे लिए पेज फाइल के बारे में आपका जवाब लंबित प्रश्नों को छोड़ देता है।
मागियर

1
@ मैगियर मैं एमएस सिफारिश के साथ जाना चाहता हूं क्योंकि मैं उस स्थिति में हूं जहां हमें समस्या का निदान करने के लिए एक पूर्ण मेमोरी डंप लेने की आवश्यकता थी - हमें नहीं पता था कि यह विंडोज़ या एसक्यूएल सर्वर था। उस स्थिति में एमएस सिफारिश सबसे अच्छा है। यदि आप उस स्थिति में नहीं आते हैं, तो ब्रेंट की सलाह भी मान्य है। मैं सुरक्षित तरफ हूं, इसलिए मैं साथ जाता हूं PAGE FILE FOR SQL SERVER = 1.5 * RAM। क्या इससे आपके प्रश्न का उत्तर मिलता है ?
परिजन शाह

3

इसलिए हमारे सर्वर पर 44GB RAM के साथ हमारे पास SQL ​​सर्वर SQL विश्लेषण सेवा और SQL रिपोर्टिंग सेवा के बगल में स्थापित है। हमें पेज फ़ाइल को किस आकार में सेट करना चाहिए?

खैर जो पहले से ही उल्लेख किया है कि मैं आपको Perfmon Countersअपने पेज फ़ाइल आकार होना चाहिए गणना करने के लिए उपयोग करने का सुझाव देते हैं । मैं इस बात से भी सहमत हूं कि पेज फाइल की रेमुस सिफारिश प्रणाली पर रैम की 1.5 गुना होनी चाहिए । लेकिन यह सिफारिश सभी संभावित पहलुओं और परिदृश्य और 'सामान्य सिफारिश' पर विचार कर रही है। मुझे लगता है कि आप ठोस मूल्य में अधिक रुचि रखते हैं। तो यहाँ है

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

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

मेमोरी: कमिट लिमिट: वर्चुअल मेमोरी की बाइट्स की संख्या जो पेजिंग फाइल्स को बढ़ाने के लिए बिना कमिट की जा सकती है।

पेजिंग फ़ाइल: प्रतिबद्ध पेजिंग फ़ाइल का% उपयोग प्रतिशत

पेजिंग फ़ाइल:% उपयोग की गई पेजिंग फ़ाइल का उच्चतम प्रतिशत पीक

पृष्ठ फ़ाइल के लिए उचित मान सेट करने के लिए कृपया काउंटरों के ऊपर का उपयोग करें। पेज फाइल के बारे में अधिक जानकारी प्राप्त करने के लिए आप इस लिंक को पढ़ सकते हैं ।

क्या तब SQL सर्वर की अधिकतम मेमोरी को 22GB रैम पर सेट करना बेहतर होता है, इसलिए विश्लेषण अन्य 22GB RAM को ले सकता है?

नहीं, मुझे नहीं लगता कि तुम यहाँ OS आवश्यकताओं को याद किया। आपको पहले SQl सर्वर के लिए अधिकतम अधिकतम सर्वर मेमोरी सेट करने की आवश्यकता है। इस SE थ्रेड में सही अधिकतम सर्वर मेमोरी मान सेट करने के बारे में अधिक विवरण है। फिर से मैं भारी और हमेशा परफ्यूम काउंटर पर जवाब देने के लिए देखने के लिए whay इष्टतम मूल्य होगा। मेरा सुझाव है कि आप इस लेख को पढ़ें और SSAS के लिए इष्टतम मूल्य निर्धारित करने के लिए काउंटरों की मदद लें। मैंने एक बार SSAS के लिए मेमोरी वैल्यू सेट करने के लिए इस ब्लॉग का उपयोग किया था। मैं SSAS में इतना अधिक नहीं हूँ इसलिए मेरी टिप्पणियाँ केवल इस लेख तक सीमित रहेंगी।

आपको शेयरपॉइंट के लिए MAXDOP = 1 को अपने व्यापक रूप से स्वीकृत पैरामीटर के लिए रखना चाहिए। यदि IIRC पुनर्संयोजन व्यापक रूप से स्वीकार किए जाने के बाद लगातार गतिरोध का सामना करना पड़ा, जब अधिकतम मान को अधिकतम मान छोड़ दिया गया था


3

पेज फ़ाइल आकार संदर्भ के लिए अब तक दिए गए अन्य उत्तरों में से सभी अपेक्षाकृत आउट ऑफ डेट लेख हैं। यह टेक्नेट ब्लॉग पोस्ट की तारीख (अक्टूबर 2015) से अधिक है और आधुनिक सिस्टम पर आदर्श पृष्ठ फ़ाइल आकार की गणना करने के लिए अधिक विस्तृत तरीका बताता है।

वे स्पष्ट रूप से कहते हैं कि 1.5 x रैम के अंगूठे का पुराना नियम अब लागू नहीं होता है।

लिंक रोट से बचने के लिए मैंने नीचे उस लेख की मुख्य सामग्री को चिपकाया है।

ध्यान दें कि वे कम से कम 1 सप्ताह के लिए चरम उपयोग पर चल रहे आपके सर्वर से मैट्रिक्स इकट्ठा करने की सलाह देते हैं - इसलिए अपनी परियोजनाओं की योजना और कार्यान्वयन के चरणों में आप ऐसा करने की स्थिति में नहीं हो सकते हैं, और आपको अपनी परियोजना में बाद में समय देना होगा। ऐसा करने के लिए।


पेज फ़ाइल को साइज़ करते समय हमें अपनी एप्लिकेशन मेमोरी की जरूरतों और क्रैश डंप सेटिंग्स पर विचार करना होगा।

आपको कैसे पता चलेगा कि आपके एप्लिकेशन को कितनी मेमोरी की आवश्यकता है? सबसे अच्छा तरीका एक आधार रेखा है।

Run Performance Monitor (Perfmon)
Go to Data Collector Sets\User Defined
Right click on User Defined and select New
Select Create Manually and next
Check Performance counter
Add the following counters:

        Memory\Committed Bytes - Committed Bytes is the amount of committed virtual memory, in bytes.
        Memory\Committed Limit - Amount of virtual memory that can be committed without having to extend the paging file
        Memory\% Committed Bytes In Use - Ratio of Memory\Committed Bytes to the Memory\Commit Limit 

नोट: सुनिश्चित करें कि आप एक लंबी अवधि (कम से कम एक सप्ताह) से अधिक जानकारी एकत्र करते हैं, और सर्वर चरम उपयोग पर चल रहा है।

पृष्ठ फ़ाइल का आकार सूत्र होना चाहिए:

(किसी भी कार्यभार फटने को समायोजित करने के लिए प्रतिबद्ध बाइट्स + अतिरिक्त 20% बफर का अधिकतम मूल्य) -RAM आकार

उदाहरण के लिए: यदि सर्वर में 24 जीबी रैम है और कमिटेड बाइट्स की अधिकतम सीमा 26 जीबी है, तो अनुशंसित पेज फाइल होगी: (26 * 1.2) -24) = 7.2 जीबी

दूसरे कारक के बारे में क्या: सिस्टम क्रैश होने पर हमें जिस आकार की जानकारी दर्ज करनी होगी?

मेमोरी डंप का आकार इसके प्रकार से निर्धारित होता है:

Complete Memory Dump  RAM Size + 257 MB
Kernel Memory Dump  The amount of kernel-mode memory in use (on 32-bit maximum is 2 GB, on 64-bit the maximum can go up until 8 TB)
Small Memory Dump  64KB  512 KB

अधिकांश मामलों में कर्नेल मेमोरी डंप रूट कारण विश्लेषण के लिए पर्याप्त है, क्योंकि पूर्ण मेमोरी डंप केवल विशिष्ट मामलों में आवश्यक है, उदाहरण के लिए आप यह देखना चाहते हैं कि उपयोगकर्ता मोड में क्या हुआ।

मेरे अनुभव से, कर्नेल मेमोरी डंप का आकार आमतौर पर निम्नलिखित है:

On System with up to 256GB RAM =  8-12 GB size for Kernel Memory dump
On System with up to 1.5TB RAM = 8-32 GB size for Kernel Memory dump

हालाँकि, ये संख्याएँ Microsoft आधिकारिक अनुशंसा नहीं हैं, और आपके सर्वर पर भिन्न हो सकती हैं इसलिए आवेदन करने से पहले हमेशा परीक्षण करें।


2

जवाब देने के बाद से मैं उन लोगों में से एक हूं जिन्हें आप उद्धृत कर रहे हैं, हे।

1. जब मैं विश्लेषण सेवाएँ भी चलाता हूँ तो मुझे अधिकतम मेमोरी कैसे सेट करनी चाहिए?

आपको वहां मार्गदर्शन नहीं मिलेगा क्योंकि SSAS किसी अन्य ऐप की तरह है जो आपके SQL सर्वर पर इंस्टॉल हो जाता है: हम सिर्फ यह नहीं जानते कि आप कितनी मेमोरी का उपयोग करने जा रहे हैं। SSAS / SSIS / SSRS को थर्ड पार्टी एप्लिकेशन के रूप में समझें - वे सिर्फ SQL सर्वर बॉक्स में "फ्री" के रूप में शामिल किए जाते हैं। उनके पास पूरी तरह से अलग सीपीयू, मेमोरी और स्टोरेज की जरूरत है।

2. मुझे पेज फ़ाइल का आकार किस पर सेट करना चाहिए?

मेरी सिफारिशें हैं ताकि विंडोज एक मिनी डंप कर सके। यदि आप एक समस्या में भाग लेते हैं जहां आपको Microsoft समर्थन को कॉल करने की आवश्यकता होती है, तो आप मिनी-डंप के साथ शुरू कर सकते हैं। यदि समस्या पुनरावृत्ति होती है, और वे इसे मिनी-डंप (या जानकारी के अन्य स्रोतों से, त्रुटि लॉग की तरह) से समझ नहीं सकते हैं, तो वे आपको 1.5x रैम आकार में जाने के लिए कह सकते हैं।

Microsoft की 1.5x RAM अनुशंसाएँ हैं ताकि Windows आपके सिस्टम के क्रैश होने पर मेमोरी का पूर्ण डंप कर सके।

इन दिनों, 64-128-256GB रैम वाले सर्वरों के साथ, क्रैश के दौरान मेमोरी की संपूर्ण सामग्री को लिखने के लिए विंडोज पॉज होना आम तौर पर एक अच्छा विचार नहीं है। आपके पास SQL ​​सर्वर का बैक अप और रनिंग होना चाहिए, और पूर्ण के बजाय मिनी-डंप सामग्री से निपटना चाहिए। बाद के लिए पूर्ण डंप सहेजें - आप आमतौर पर Microsoft को 64 + GB डंप फ़ाइल अपलोड करने की आवश्यकता के बिना अपने पूरे कैरियर को जा सकते हैं। (उस पर अच्छी किस्मत।)

3. मैं SharePoint के लिए MAXDOP क्या सेट करूँ?

जिसे आप "मेरी" अनुशंसा कहते हैं, वह Microsoft KB 2806535 से है । सामान्य रूप से वहां शुरू करें, लेकिन जब एक विशिष्ट एप्लिकेशन आपको कुछ अलग बताता है, तो वे अपने आवेदन के बारे में कुछ जानते हैं जो सामान्य रूप से SQL सर्वर से भिन्न होता है - इसका पालन करें।

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