स्वैप विभाजन कितना बड़ा होना चाहिए?


10

कुछ वर्षों के लिए, मैंने पढ़ा है कि एक स्वैप विभाजन बनाने के लिए यह एक अच्छा विचार है कि मेरी रैम का दोहरा स्थान है। क्या यह आज भी लागू होता है? या अब इसकी आवश्यकता नहीं है?

मेरे पास 8 GiB रैम के साथ एक सर्वर है और मुझे स्वैप विभाजन बनाने की आवश्यकता है, और मैं सोच रहा था कि क्या 16 GiB बहुत अधिक था।


जवाबों:


11

बड़ी प्रणालियों पर, 8 जीबी की शारीरिक रैम, हम आमतौर पर 2 जीबी स्वैप आवंटित करते हैं। ये Oracle या PostgreSQL चलाने वाले लोडेड डेटाबेस सर्वर हैं। सालों से, मैंने कभी भी भारी लोड के तहत स्वैप हिट नहीं देखा है। लगभग 10,000 SQL रीडिंग करने वाले भारी लोड 100 से 150 उपयोगकर्ता हैं, और शायद 2,500 प्रति मिनट लिखते हैं।

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

एडी की तरह, ऊपर कहा गया है, 1x फिजिकल रैम 4GB से कम की चीज के लिए अंगूठे का एक अच्छा नियम है। मैं एक बड़ी, फॉर्च्यून -500 कंपनी के लिए कस्टम लिनक्स बनाता हूं और ये चीजें हैं जो हम आम तौर पर करते हैं, और हमारे पास पिछले 5 या इतने वर्षों में कोई समस्या नहीं है जो मैं उनके लिए परामर्श कर रहा हूं।

बड़े सिस्टम पर: 32 जीबी और 64 जीबी रैम के साथ 64 बिट लिनक्स, ये हमारे ओरेकल डेटाबेस सर्वर हैं, और हम आम तौर पर एडीडी के ऊपर की चीजों के लिए लगभग 2 जीबी स्वैप रखते हैं - ऊपर की ओर आपकी निष्क्रियता सेटिंग्स के आधार पर निष्क्रिय प्रक्रियाओं को स्वैप करने के लिए स्थानांतरित किया जाएगा।


5

एक प्रतीत होता है कालातीत प्रश्न। कुछ समय पहले स्लैशडॉट के अच्छे लोगों ने इस पर चर्चा की। देखें कि उन्हें क्या कहना था:

  • आधुनिक HDDs के साथ डिस्क स्थान कोई समस्या नहीं है, 16 जीबी अभी भी आधुनिक टीबी ड्राइव के लिए एक तुच्छ राशि है।
  • हालाँकि, ख़राब मेमोरी प्रबंधन के मामले में महत्वपूर्ण स्वैप स्पेस एक समस्या हो सकती है:

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

  • अंत में, सही निर्णय स्मृति आवश्यकताओं से आना चाहिए, न कि बॉलपार्क फॉर्मूले से:

यदि आपके पास उन कार्यक्रमों को चलाने के लिए पर्याप्त रैम है जो आप दैनिक आधार पर उपयोग करना चाहते हैं], तो कभी भी स्वैप का उपयोग करने का कोई कारण नहीं है।


3

उत्तर देखें उच्च मेमोरी सिस्टम पर कितना SWAP स्थान है? कुछ मार्गदर्शन के लिए, हालांकि आपका प्रश्न अधिक सामान्य है। राय इस पर व्यापक रूप से भिन्न होती है, लेकिन आम तौर पर 1 गीब रैम या उससे अधिक वाले लोग या तो पूरी तरह से स्वैप के बिना चलते हैं, या 1xmory के साथ स्वैप के रूप में।

यहां तक ​​कि अगर आप इतनी रैम का उपयोग करने की योजना नहीं बनाते हैं, जिसे आप स्वैप करने के लिए मजबूर करेंगे, तो स्वैप के रूप में कम से कम 1xmory होने में कुछ मूल्य है: यह ऑपरेटिंग सिस्टम को कुछ ऐसी चीजों को स्वैप करने की अनुमति देता है, जिनका उपयोग करने की उम्मीद नहीं है तुरंत ताकि यह उदाहरण के लिए डिस्क या IO बफ़र्स के लिए उस मेमोरी का उपयोग कर सके।


3

यदि आप अपने सिस्टम को हाइबरनेट करने में सक्षम होने की उम्मीद करते हैं और फिर सफलतापूर्वक :-) फिर से शुरू करते हैं, तो संभवतः भौतिक रैम की मात्रा की तुलना में स्वैप विभाजन के लिए अधिक स्थान आवंटित करना बेहतर है।


3

मेरा VPS प्रदाता सर्वरों के लिए स्वैप स्थान भी प्रदान नहीं करता है, और मेरा इसके बिना ठीक चल रहा है।

अधिकांश सर्वर जिन्हें मैं दैनिक रूप से काम पर देखता हूं, वे स्वैप-कम भी हैं।

संपादित करें

हालाँकि - यदि आप एक JVM चला रहे हैं, तो सुनिश्चित करें कि आपके पास कम से कम स्वैप स्पेस है क्योंकि आप कभी भी JVM के साथ ज्ञात समस्या के-Xmx कारण सेट होंगे ।

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

  • डिस्क पर स्वयं स्वैप करता है
  • नई मेमोरी आवंटित करता है
  • रैम में ही पढ़ता है

इसका मतलब है कि यदि आप स्वैप अपने से कम करते हैं Xmx, तो यह विफल हो सकता है।

बग रिपोर्ट को उद्धृत करने के लिए

इस त्रुटि का सामना करने वाली मशीनों पर स्वैप आकार बढ़ाने के लिए सबसे अच्छी बात है।

मैं JVMs के साथ काम करते समय इसे सुरक्षित खेलने की कोशिश करता हूं और बराबर शारीरिक मेमोरी में स्वैप सेट करता हूं।


2

आधुनिक हार्ड डिस्क ड्राइव की गति को देखते हुए, बड़े स्वैप थ्रैशिंग के लिए एक निमंत्रण हैं। हो सकता है कि SSDs इस प्रवृत्ति को उलट देंगे, लेकिन हो सकता है कि किसी डिस्क के लिए 300MB / s अधिकतम ट्रांसफर स्पीड के साथ, 2-4GB में स्वैप करने में थोड़ी देर लगे।

पुराने दिनों में (यानी: लिनक्स 1.2, i386, सनोस 4.x), आपके पास 5-15 एमबी डेमन प्रक्रियाएं चल रही होंगी और कहीं भी 4-32MB रैम और इतने डेमॉन जो सिर्फ I / I के इंतजार में अवरुद्ध थे। O को बिना किसी वास्तविक प्रदर्शन हिट के स्वैप किया जा सकता है ... और वे बेहतर होंगे क्योंकि उपयोगकर्ता प्रोग्राम में 2-3MB RAM उपलब्ध हो सकता है। अदला-बदली बहुत मायने रखती है।

अब मेरे वातावरण में, अधिकांश सर्वरों में एकल मेमोरी हैवी वर्कलोड है और रैम का काफी सटीक अनुमान लगाया जा सकता है ... स्वैप में आपात स्थिति, भागने की प्रक्रिया और इतने पर है।

अपवाद लैपटॉप और वर्कस्टेशन कि सो हो सकता है के लिए है। कई OS सस्पेंड छवि को बचाने के लिए स्वैप क्षेत्र का उपयोग करेंगे और उन मामलों में, स्वैप बड़ी तब भौतिक मेमोरी होनी चाहिए। सस्पेंड 2 / tuxonice के साथ लिनक्स में आपको सस्पेंड-टू-डिस्क का समर्थन करने के लिए स्वैप आकार में 2xRAM होना चाहिए।


पुराने दिनों में, सिस्टम V 3.2 और पहले में वास्तव में RAM आकार स्वैप का उपयोग किया गया था। किसी भी कम टूट गया था और किसी भी अधिक बर्बाद हो गया था, क्योंकि यह बीएसडी के रूप में एक आभासी स्मृति प्रणाली के रूप में परिष्कृत नहीं था।
किमी।

2

इन दिनों यदि आप डिफ़ॉल्ट के लिए 32 जीबी या 64 जीबी सर्वर 4 जीबी स्वैप कर रहे हैं तो यह एक सुरक्षित राशि है। इससे बड़ी कोई चीज उपलब्ध नहीं है जो कि बहुत अधिक भौतिक रैम उपलब्ध है।


1

आदर्श रूप से आप स्वैप का उपयोग बिल्कुल नहीं करेंगे, और 2x RAM चीज वास्तव में पिछले वर्षों से कुछ बचा हुआ है।

यदि आप इसके बारे में चिंतित हैं, हालांकि, मैं कुछ ऐसा करूंगा:

Max Memory Requirement - Physical Ram = Swap

मुझे लगता है कि 16GB लगता है बहुत बड़ा, व्यक्तिगत रूप से।


1

पुराने दिनों में आप जितना चाहें उतना प्राप्त कर सकते थे, आधुनिक * निक्स कर्नेल में मेमोरी खपत अतीत की बात है। पुरानी कहावत थी "2x तुम्हारी याददाश्त"। 2GB या अंतरिक्ष की मात्रा के बीच मशीन इस दिन राम में है और उम्र आपको वहां ले जाएगी जहां आपको होना चाहिए।


1

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


0

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

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

बेशक, आप कम कीमत के लिए प्रदर्शन बंद कर सकते हैं।

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