एसक्यूएल सर्वर के लिए उचित विंडोज ओ / एस पेजफाइल आकार

क्या कोई Windows 2003 सर्वर SQL सर्वर चलाने के लिए उचित पेजफाइल आकार के लिए अंगूठे का अच्छा नियम जानता है?

0
जोड़ा संपादित
विचारों: 5

8 उत्तर

हमारे पास हाल ही में हमारे SQL सर्वर में से एक के साथ कुछ प्रदर्शन समस्याएं थीं कि हम पूरी तरह से संकीर्ण नहीं हो पाए, और वास्तव में समस्या निवारण में सहायता के लिए हमारे Microsoft समर्थन टिकटों में से एक का उपयोग किया। एसक्यूएल सर्वर के साथ उपयोग करने के लिए इष्टतम पेजफाइल आकार आया, और माइक्रोसॉफ्ट की सिफारिश यह है कि यह 1 1/2 बार RAM की मात्रा हो।

0
जोड़ा

रैम के आकार के अप्रासंगिक, आपको अभी भी भौतिक RAM की मात्रा कम से कम 1.5 गुना पृष्ठफाइल की आवश्यकता है। यह सच है भले ही आपके पास 1 टीबी रैम मशीन है, आपको डिस्क पर 1.5 टीबी पेजफाइल की आवश्यकता होगी (पागल लगता है, लेकिन सच है)।

जब कोई प्रक्रिया वर्चुअलअलोक / वर्चुअलअलोकएक्स के माध्यम से MEM_COMMIT मेमोरी पूछती है, अनुरोध किए गए आकार को पृष्ठ फ़ाइल में आरक्षित करने की आवश्यकता होती है। यह पहली विन एनटी प्रणाली में सच था, और आज भी सत्य है वर्चुअल मेमोरी प्रबंधित करना Win32 में:

जब स्मृति प्रतिबद्ध होती है, भौतिक   स्मृति के पृष्ठ आवंटित और   अंतरिक्ष पेजफाइल में सुरक्षित है

कुछ चरम विषम मामलों को देखें, SQL सर्वर हमेशा MEM_COMMIT पृष्ठों के लिए पूछेगा। और तथ्य यह है कि एसक्यूएल एक गतिशील मेमोरी प्रबंधन नीति का उपयोग करता है जो पहले से सुरक्षित रखता है वीएएस के मामले में जितना संभव हो उतना बफर पूल (भंडार और काम करता है ), SQL सर्वर पृष्ठफाइल में स्थान का एक बड़ा आरक्षण शुरू करने का अनुरोध करेगा। यदि पेजफाइल ठीक से आकार नहीं है 801/802 एसक्यूएल की ERRORLOG फ़ाइल और संचालन में दिखाना शुरू हो जाएगा।

यह हमेशा कुछ भ्रम पैदा करता है, क्योंकि प्रशासक गलती से मानते हैं कि एक बड़ी रैम पृष्ठफाइल की आवश्यकता को समाप्त करती है। सच में इसके विपरीत, एक बड़ी रैम विंडोज़ एनटी मेमोरी मैनेजर की आंतरिक कार्यप्रणाली के कारण पेजफाइल की आवश्यकता को बढ़ाती है। आरक्षित पेजफाइल, उम्मीद है, कभी भी इस्तेमाल नहीं किया जाता है।

0
जोड़ा
वास्तव में मैं क्या देख रहा था, धन्यवाद! 32 जीबी वीएम के साथ पेज फ़ाइल निश्चित रूप से बहुत सारी जगह लेती है, हालांकि जानवर की प्रकृति की तरह लगता है ...
जोड़ा लेखक tsquillario, स्रोत

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

Windows के 64-बिट संस्करणों के लिए उपयुक्त पृष्ठ फ़ाइल आकार कैसे निर्धारित करें

0
जोड़ा

आवेदन के कामकाजी सेट के आकार के लिए जितना बड़ा होगा, जहां आप कम रिटर्न में प्रवेश करना शुरू कर देंगे। जब तक आप कैश हिट दरों में महत्वपूर्ण परिवर्तन नहीं देखते हैं, तब तक आप धीरे-धीरे आकार को बढ़ाकर या घटाने से इसे खोजने का प्रयास कर सकते हैं। हालांकि, यदि कैश हिट दर 90% से अधिक है या तो आप शायद ठीक हैं। आम तौर पर आपको यह सुनिश्चित करने के लिए उत्पादन प्रणाली पर नजर रखना चाहिए कि यह अपने रैम आवंटन को बढ़ा नहीं गया है।

0
जोड़ा

यदि आप उच्च प्रदर्शन की तलाश में हैं, तो आप पूरी तरह से पेजिंग से बचना चाहते हैं, इसलिए पेज फ़ाइल का आकार कम महत्वपूर्ण हो जाता है। डीबी सर्वर के लिए व्यवहार्य के रूप में ज्यादा रैम में निवेश करें।

0
जोड़ा
यह वास्तव में गलत है। MEM_COMMIT आवंटन को पृष्ठ फ़ाइल में आरक्षण स्थान के बिना सम्मानित नहीं किया जा सकता है। आपकी पेजफाइल रैम की मात्रा कम से कम 1.5 गुना होनी चाहिए, भले ही आपके पास 1 टीबी रैम हो।
जोड़ा लेखक Remus Rusanu, स्रोत

अधिक शोध के बाद विंडोज 2003 एंटरप्राइज़ x64 पर एंटरप्राइज़ x64 चलाने वाले हमारे समर्पित SQL सर्वरों में कोई पृष्ठ फ़ाइल नहीं है।

बस, पृष्ठ फ़ाइल उन फ़ाइलों के लिए एक कैश है जो ओएस द्वारा प्रबंधित की जाती है, और एसक्यूएल की अपनी आंतरिक मेमोरी प्रबंधन प्रणाली है।

संदर्भित एमएस आलेख योग्य नहीं है कि सलाह ओएस के लिए फ़ाइल साझाकरण जैसी आउट-ऑफ-द-बॉक्स सेवाओं के लिए है।

एक पृष्ठ फ़ाइल होने से बस डिस्क I / O को बोझ जाता है क्योंकि विंडोज़ मदद करने की कोशिश कर रहा है, जब केवल एसक्यूएल ओएस ही काम कर सकता है।

0
जोड़ा

रीमस के सभी सम्मान के साथ (जिसे मैं बहुत सम्मान करता हूं), मैं दृढ़ता से असहमत हूं। यदि आपकी पृष्ठ फ़ाइल पूर्ण डंप का समर्थन करने के लिए पर्याप्त है, तो यह हर बार एक पूर्ण डंप करेगा। यदि आपके पास रैम की एक बड़ी मात्रा है, तो इससे एक छोटी सी चीज एक बड़ी आबादी बन सकती है।

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

इसके अलावा, यदि आपका सर्वर 1 टीबी पूर्ण डंप की अनुमति देने के लिए कॉन्फ़िगर किया गया है और आवर्ती समस्या होती है, तो आप हाथ पर होने की कितनी खाली डिस्क स्थान की सिफारिश करेंगे? आप एक सप्ताहांत में एक संपूर्ण SAN भर सकते हैं।

एक पृष्ठ फ़ाइल 1.5 * रैम उन दिनों में मानक था जब आप भाग्यशाली थे कि SQL सर्वर 3 या 4 जीबी रैम के साथ हो। यह अब और मामला नहीं है। मैं पेज डिफ़ॉल्ट रूप से विंडोज़ डिफ़ॉल्ट आकार और सभी उत्पादन सर्वरों पर सेटिंग्स को छोड़ देता हूं (एक एसएसएएस सर्वर को छोड़कर जो स्मृति दबाव का अनुभव कर रहा है)।

और सिर्फ स्पष्टीकरण के लिए, मैंने 2 जीबी रैम से 2 टीबी रैम तक के सर्वरों के साथ काम किया है। 11 से अधिक वर्षों के बाद, मुझे केवल एक बार पूर्ण डंप कैप्चर करने के लिए पेजिंग फ़ाइल को बढ़ाना पड़ा।

0
जोड़ा

इस मामले में, 1.5 गुना कुल भौतिक रैम की सामान्य सिफारिश सबसे अच्छी नहीं है। यह सामान्य सिफारिश इस धारणा के तहत प्रदान की जाती है कि सभी स्मृति का उपयोग "सामान्य" प्रक्रियाओं द्वारा किया जा रहा है, जो आम तौर पर कम से कम उपयोग किए जाने वाले पृष्ठों को स्मृति प्रक्रिया से संबंधित अनुप्रयोग प्रक्रिया के लिए बड़े प्रदर्शन समस्याओं को उत्पन्न किए बिना डिस्क पर स्थानांतरित हो सकते हैं।

एसक्यूएल सर्वर (आम तौर पर रैम की बहुत बड़ी मात्रा के साथ) चलाने वाले सर्वरों के लिए, अधिकांश भौतिक RAM SQL सर्वर प्रक्रिया के लिए प्रतिबद्ध होती है और भौतिक स्मृति में लॉक होने पर (अगर सही तरीके से कॉन्फ़िगर किया गया हो) होना चाहिए, इसे पेजफाइल पर पेजिंग से रोकना चाहिए । SQL सर्वर डिस्क I / O को कम करने के लिए डेटा कैश के रूप में अपनी प्रक्रिया में आवंटित रैम के एक बड़े हिस्से का उपयोग करके, दिमाग में प्रदर्शन के साथ अपनी याददाश्त को बहुत सावधानी से प्रबंधित करता है। पेजफाइल पर उन डेटा कैश पृष्ठों को पेज करने के लिए यह समझ में नहीं आता है, क्योंकि पहली जगह रैम में डेटा रखने का एकमात्र उद्देश्य डिस्क I / O को कम करना है। (ध्यान दें कि विंडोज ओएस भी सिस्टम ऑपरेशन को गति देने के लिए डिस्क कैश के रूप में उपलब्ध रैम का उपयोग करता है।) चूंकि SQL सर्वर पहले से ही अपनी मेमोरी स्पेस प्रबंधित करता है, इसलिए इस मेमोरी स्पेस को "पेजेबल" नहीं माना जाना चाहिए, और पेजफाइल के लिए गणना में शामिल नहीं होना चाहिए आकार।

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

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

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

SQL सर्वर में 802 त्रुटियां इंगित करती हैं कि सिस्टम डेटा कैश के लिए कोई और पृष्ठ नहीं कर सकता है। पेजफाइल आकार को बढ़ाने से केवल इस स्थिति में मदद मिलेगी क्योंकि विंडोज गैर-SQL सर्वर प्रक्रियाओं से स्मृति को बाहर करने में सक्षम है। इस स्थिति में पेजफाइल में बढ़ने के लिए SQL सर्वर मेमोरी को अनुमति देना त्रुटि संदेशों से छुटकारा पा सकता है, लेकिन यह पहले स्थान पर डेटा कैश के कारण के कारण बिंदु के कारण प्रतिकूल है।

0
जोड़ा