एक समर्पित डेटाबेस सर्वर पर, ओएस के लिए कितना मेमोरी आरक्षित करना है?


38

मान लें कि आपके पास डेटाबेस कार्यों के लिए स्पष्ट रूप से एक समर्पित सर्वर है - आपको ऑपरेटिंग सिस्टम के लिए कितनी मेमोरी आरक्षित करनी चाहिए?

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

इसलिए

  • शुरुआत करने के लिए अंगूठे का एक अच्छा नियम क्या है?
  • क्या काउंटर या प्रदर्शन संकेतक हमें यह निर्धारित करने के लिए देखना चाहिए कि क्या हम बहुत दूर चले गए हैं और होस्ट ओएस डेटाबेस द्वारा किसी भी तरह से भूखा हो रहा है?

क्या आप लोगों ने कभी इन सेटिंग्स को ट्विस्ट किया? आपकी प्रोफाइलिंग ने आपको क्या बताया?
jcolebrand

@jcole इस समय जोड़ने के लिए कुछ भी नहीं है; हम आम तौर पर ओएस के लिए 4 - 6 जीबी आरक्षित करते हैं जो कि मेरी पसंद की तुलना में अधिक रूढ़िवादी है
जेफ एटवुड

जवाबों:


30

विंडोज और SQL सर्वर मानकर ...

विचार के दो स्कूल हैं।

  1. विंडोज के लिए 2-4 गिग्स छोड़ें (SQL सर्वर के अलावा जो इंस्टॉल किया गया है उसके आधार पर)।
  2. अपनी उपलब्ध मेमोरी का 10% मुफ्त छोड़ दें। जैसा कि आप 64 से अधिक गिग्स प्राप्त करते हैं, यह ओएस के लिए छोड़ने के लिए स्मृति की एक बड़ी मात्रा में पागल हो जाता है, जिसे शायद इसकी आवश्यकता नहीं होगी।

व्यक्तिगत रूप से मैं पहले समूह में हूं। विंडोज को आमतौर पर 2-4 गिग्स की जरूरत होती है, कभी-कभी 6 तक।


2
OS के लिए 2 ish gb की RAM पर कॉन्सुर।
jcolebrand

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

2
@ सही, लेकिन क्या विशेष रूप से निगरानी के लिए सबसे अच्छा है, जब मैं देख रहा हूं "क्या मैं ओएस को मेमोरी से बाहर निकाल रहा हूं?"
जेफ एटवुड

1
@ जेफ़ मेरी टिप्पणी उतनी सटीक नहीं थी जितनी होनी चाहिए थी। स्मृति के लिए, मैं आम तौर पर निम्नलिखित प्रदर्शन काउंटरों को देखता हूं: मेमोरी: पेज / सेकंड और मेमोरी: उपलब्ध बाइट्स। अधिक जानकारी के लिए इन पृष्ठों को देखें: sql-server-performance.com/articles/audit/… और Technet.microsoft.com/en-us/library/cc966540.aspx (विशेषकर मेमोरी अड़चन अनुभाग
मैट एम

6
@ जेफ डेनी का जवाब सही है, और परफ्यूम काउंटर के लिए, मेमोरी देखें: उपलब्ध बाइट्स। यदि यह नीचे गिरता है, तो कहिए, 512MB, आपको OS भूखा होने का खतरा है। हालाँकि, 64-बिट सिस्टम पर फ़ाइल कैश के बारे में भी जानकारी रखें, जो तब भी उपलब्ध है, जब यह उपलब्ध नहीं है: Blogs.msdn.com/b/ntdebugging/archive/2007/11/27/…
ब्रेंट ओजर

16

लिनक्स की मानें तो अगर आप स्वैप बंद कर देते हैं और कर्नेल आपकी DB प्रक्रिया को मारता रहता है क्योंकि यह मेमोरी से बाहर है, तो यह एक अच्छा संकेतक है जिससे आप मेमोरी के लिए OS को भूखा रख रहे हैं। तब तक वापस आएँ जब तक कि ऐसा होना बंद न हो जाए। एक जोड़ी सौ मीग आमतौर पर बहुत होती है।


प्रोफाइल प्रोफ़ाइल प्रोफ़ाइल के +1 ~ लेकिन यह किया जा रहा है के जेफ askin मुझे यकीन है कि के लिए यह SQLServer और Windows अनुमान;)
jcolebrand

1
@jcolebrand, हालांकि, यह जानकर भी कि आप पहचान नहीं पाएंगे, वह कहते हैं, जिसका अर्थ है कि उन्होंने जानबूझकर सभी प्लेटफार्मों और डेटाबेस के लिए इसे खुला छोड़ दिया है।
xenoterracide

2
और, अभी भी यह जानते हुए कि यह @ जैफ है ... क्यों उसे चिंता करना और लिनक्स से प्यार करना नहीं सीखना चाहिए? ;-)
जुरगेन ए। इरहार्ड

8

आप यहां हजारों ग्राहकों के डेटाबेस सर्वर चलाने वाले अमेज़ॅन के अनुभव का लाभ उठा सकते हैं: अमेज़ॅन रिलेशनल डेटाबेस सर्विस पर, वे MySQL के इनोडब बफर बफर को सिस्टम की मेमोरी के 3/4 पर सेट करते हैं, चाहे वह कितनी भी मेमोरी हो। विभिन्न क्वेरी बफ़र्स के लिए प्रति कनेक्शन एक जोड़ी megs में जोड़ें, और वे संभवतः 10-20% मेमोरी को OS पर छोड़ रहे हैं।


5

आपको ब्रेंट ओजर की मेमोरी को लेना चाहिए । उसके पास कुछ काफी मानक उत्तर हैं कि आपको स्मृति क्यों दिखनी चाहिए और क्यों अधिक स्मृति बेहतर प्रदर्शन के बराबर है। सामान्यतया 4 जीबी या 10% ओएस के लिए आरक्षित है।

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