2-4GB सिस्टम पर कितना SWAP स्पेस है?


53

मुझे यह कैसे तय करना चाहिए कि 2-4 जीबी रैम के साथ एक नई लिनक्स मशीन (डेबियन) पर अपना स्वैप बनाने के लिए क्या आकार है? क्या मुझे वास्तव में स्वैप स्पेस की आवश्यकता है?


3
5 साल बाद अब 2-4 जीबी वास्तव में उच्च मेमोरी नहीं है।
फिंडी फाइनेंस

@ KasperSouren नहीं, यह नहीं है। उस समय एक उचित राशि थी।
सी। रॉस

जवाबों:


54

ऐसे बहुत से तरीके हैं जिनसे आप पता लगा सकते हैं कि किसी मशीन में कितना स्वैप उपयोग होता है। आम सुझावों में रैम पर आधारित फॉर्मूला का उपयोग किया जाता है जैसे 2 x RAM, 1.5 x RAM, 1 x RAM, .75 x RAM और .5 x RAM। कई बार राम की मात्रा के आधार पर सूत्र अलग-अलग होते हैं (इसलिए 1 जीबी रैम वाला एक बॉक्स 2 x रैम स्वैप (2 जीबी) का उपयोग कर सकता है, जबकि 16 जीबी रैम वाला एक बॉक्स .5 x रैम स्वैप (8 जीबी) का उपयोग कर सकता है।

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

जैसे कि क्या आपको स्वैप शामिल करना चाहिए, हां, आपको करना चाहिए। आपको हमेशा स्वैप स्थान शामिल करना चाहिए जब तक कि आप वास्तव में नहीं जानते कि आप क्या कर रहे हैं, और आपके पास वास्तव में इसके लिए एक अच्छा कारण है।

देखें, जिस तरह से लिनक्स कर्नेल काम करता है, स्वैप का उपयोग केवल तब नहीं किया जाता है जब आपने सभी भौतिक मेमोरी को समाप्त कर दिया हो। लिनक्स कर्नेल ऐसे एप्लिकेशन लेगा जो सक्रिय नहीं हैं (सो रहे हैं) और समय की अवधि के बाद, एप्लिकेशन को वास्तविक मेमोरी से स्वैप करने के लिए ले जाएं। नतीजा यह है कि जब आपको उस एप्लिकेशन की आवश्यकता होती है, तो एक क्षणिक विलंब होगा (आमतौर पर सिर्फ एक सेकंड या दो) जबकि एप्लिकेशन की मेमोरी को स्वैप से रैम में वापस पढ़ा जाता है। और यह आमतौर पर एक अच्छी बात है।

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

अंत में, आइए इसका सामना करते हैं, डिस्क स्थान सस्ता है। वाकई सस्ता। वहाँ वास्तव में कोई अच्छा कारण नहीं है स्वैप के लिए अंतरिक्ष के एक (अपेक्षाकृत) छोटे हिस्सा नहीं स्वाइप करें। अगर मैं एक मशीन में 2GB - 4GB RAM के साथ चल रहा था, तो मैं शायद अपने स्वैप स्पेस को कम से कम RAM के बराबर सेटअप करूँगा। यदि यह 2GB से कम रैम का होता है, तो मैं अभी भी कम से कम 2GB स्वैप के साथ जाऊंगा।

अद्यतन: उल्लेखित एक उत्कृष्ट टिप्पणी के रूप में (और मैं शामिल करना भूल गया), यदि आप एक लैपटॉप या एक डेस्कटॉप चला रहे हैं जिसे आप 'हाइबरनेट' मोड में रखना चाहते हैं (डिस्क पर स्थगित करें), तो आप हमेशा कम से कम उतना चाहते हैं आप स्मृति के रूप में स्वैप करें। स्वैप स्थान का उपयोग कंप्यूटर में रैम की सामग्री को स्टोर करने के लिए किया जाएगा, जबकि यह 'सोता है'।


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

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

जैसा कि मैंने पिछली गर्मियों में पाया था , अगर आपको जावा चल रहा है तो पर्याप्त स्वैप स्थान होना चाहिए
वॉरेन

यदि उपयोगकर्ता के पास RAM की मात्रा उस राशि की तुलना में बहुत अधिक है जिसका वे वास्तव में उपयोग करेंगे (16GB / 32GB) 100% अपटाइम डेस्कटॉप कंप्यूटर (कोई हाइबरनेशन) पर तो क्या आप अभी भी SWAP में डालने के लिए प्रक्रियाओं का अनुरोध करने का सुझाव देते हैं? मुझे लगता है कि राम पर सब कुछ छोड़ने का लाभ तब तक होगा जब तक आप कभी भी इसकी क्षमता के करीब नहीं होंगे।
EarthmeLon

1
@earthmeLon - मेरा सुझाव है कि अभी भी थोड़ा सा स्वैप होगा। इन दिनों डिस्क बड़े और सस्ते हैं, इसलिए स्वैप के कुछ जीबी डिस्क स्थान का नुकसान नगण्य है। कुछ अदला-बदली करने से आपको बीमा पॉलिसी मिलती है अगर आप इसकी अपेक्षा से अधिक रैम खाते हैं।
क्रिस्टोफर Cashell

17

रेड हैट की सिफारिश की राम की बहुत सारी के साथ सर्वर के लिए निम्न सूत्र:

if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB

यदि आपके सिस्टम में 1 जीबी रैम है, तो आपका स्वैप 2 जीबी होगा, 16 जीबी के लिए यह 18 जीबी होगा।


3
RHEL6 संग्रहण गाइड से प्रासंगिक लिंक: docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/…
Ophidian

एक सर्वर बहुत रुका हुआ होगा अगर वह लगातार 1 जीबी स्वैप का उपयोग करता है क्योंकि यह रैम भरा होगा।
14:22 बजे user2284570

12

देर से जवाब, और मुझे लगता है कि यह चयनित उत्तर में बहुत अधिक कवर किया गया था, लेकिन @ssapkota द्वारा यहां दिए गए उत्तर में कुछ अच्छी और आसानी से पचने योग्य जानकारी है (कॉपी / नीचे चिपकाया गया)।

यहां रेडहैट: अनुशंसित सिस्टम स्वैप स्पेस से बहुत अच्छी सिफारिश की गई है

उसी लिंक से एक अंश:

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

वर्तमान तालिका (दिसंबर 2012 तक):

Amount of RAM in the system   Recommended swap space         Recommended swap space 
                                                             if allowing for hibernation
---------------------------   ----------------------------   ---------------------------
2GB of RAM or less            2 times the amount of RAM      3 times the amount of RAM
2GB to 8GB of RAM             Equal to the amount of RAM     2 times the amount of RAM
8GB to 64GB of RAM            0.5 times the amount of RAM    1.5 times the amount of RAM
64GB of RAM or more           4GB of swap space              No extra space needed

मूल तालिका:

Amount of RAM in the System     Recommended Amount of Swap Space
4GB of RAM or less              a minimum of 2GB of swap space
4GB to 16GB of RAM              a minimum of 4GB of swap space
16GB to 64GB of RAM             a minimum of 8GB of swap space
64GB to 256GB of RAM            a minimum of 16GB of swap space
256GB to 512GB of RAM           a minimum of 32GB of swap space 

8

यह काफी कुछ पर निर्भर करता है कि आप इसके साथ क्या कर रहे हैं। उपयुक्त कार्यभार के साथ, आपको वास्तव में किसी भी स्वैप स्थान की आवश्यकता नहीं है, चाहे आपके पास 16 एमबी या 16384 एमबी रैम हो; वास्तव में सबसे एम्बेडेड लिनक्स डिवाइस बिना किसी के चलते हैं (वे क्या स्वैप करेंगे?)

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

  1. डेस्कटॉप पर, स्वैप स्पेस का उपयोग सस्पेंड-टू-डिस्क के लिए किया जाता है। यह स्‍लैप स्‍पेस लगभग 1 × RAM होना चाहिए, यह इस बात पर निर्भर करता है कि मेमोरी कंटेंट कितने अच्‍छे से कंप्रेस करते हैं।
  2. डिस्क कैश के लिए अधिक जगह बनाने के लिए रैम से निकाले जाने वाले निष्क्रिय कार्यों की अनुमति देना
  3. समान, लेकिन ढेर / ढेर के बजाय सक्रिय प्रक्रियाओं का उपयोग करने की अनुमति देने के लिए

(2) और (3) भारी कार्यभार पर निर्भर करता है। अपने डेस्कटॉप पर, मैं आसानी से 4GB + पर (2) का उपयोग कर सकता हूं, अन्य डेस्कटॉप पर चल रहे vims, xterms, आदि को छोड़कर।

मेरे द्वारा चलाए जाने वाले अधिकांश सर्वरों पर, शायद ही कभी कोई चीज स्वैप की गई हो और 1-2 जीबी स्वैप (रैम राशि की परवाह किए बिना) ठीक लगता हो।


यदि आप JVM का उपयोग करने वाले किसी भी चीज़ को चलाते हैं, तो स्वैप स्पेस का उपयोग किया जाता है : यदि आप जावा चला रहे हैं, तो chintz को न बदलें और स्वैप स्थान आवंटित करना न भूलें!
वॉरेन

@warren: मेरे पास Tomcat उदाहरण हैं, प्रत्येक 3GiB से अधिक है, फिर भी कोई स्वैप का उपयोग नहीं कर रहा है (और एक प्रचंड उपयोग कर रहा है, और इस प्रकार स्वैप नहीं किया जा सकता है)। निश्चित नहीं कि आप किस बारे में बात कर रहे हैं।
derobert

न्यूनतम और अधिकतम मेमोरी सेटिंग्स से संबंधित जेवीएम में एक अर्ध-अस्पष्ट बग है जो मैं इस पिछली गर्मियों में चला गया था ( antipaucity.com/?p=984 )। टीएल; डीआर - हर बार जब जेवीएम ओएस से अधिक मेमोरी मांगता है, तो यह स्वयं को स्वैप करने के लिए लिखता है, अपनी नई मेमोरी चंक प्राप्त करता है, फिर खुद को रैम में वापस पढ़ता है ताकि उसकी मेमोरी सन्निहित हो
वॉरेन

@warren: ठीक है, मैं XJx और Xms के साथ 64 बिट पर OpenJDK चला रहा हूं। लेकिन मुझे यकीन नहीं है कि जावा खुद को स्वैप करने के लिए कैसे मजबूर करेगा, एकमात्र syscall करीब होगा madvise, लेकिन यह विफल नहीं होगा ... वह बग कचरा संग्रह के दौरान स्मृति से बाहर चलने के बारे में बात करता है। स्वैप को जोड़ने से, निश्चित रूप से रोकता है, लेकिन इसलिए रैम को जोड़ना होगा। शायद इसकी वजह PAE के साथ 32-बिट है?
derobert

यह 64-बिट जेवीएम के साथ भी होता है: यदि आपके पास है Xmsऔर Xmxसमान मूल्यों के लिए सेट नहीं है, तो यह आपको बुरी तरह से काट सकता है: दो सप्ताह के लिए हमारे लिए प्रमुख मुद्दों का कारण है तिल अंत में हमने इसे नीचे ट्रैक किया
वॉरेन

4

खैर, यह निर्भर करता है कि आप किन सेवाओं और अनुप्रयोगों को चलाने की योजना बना रहे हैं। आप अपने मेमोरी उपयोग को मुफ्त में देख सकते हैं और समय के अनुसार अपने स्वैप विभाजन को समायोजित कर सकते हैं।

यहाँ इस विषय पर एक दिलचस्प चर्चा है । व्यक्तिगत रूप से (और उस चर्चा को पढ़ने के बाद) मैं अभी भी स्वैप के लिए लगभग 1 जीबी छोड़ दूंगा।


2

मैं सीधे डेबियन से बात नहीं कर सकता, लेकिन मुझे पता है कि जब आप 2 जीबी रैम से ऊपर उठते हैं, तो मूल 2xRAM समीकरण बदलता है, आमतौर पर 1xRAM तक नीचे। मुझे लगता है कि एक बार जब आप 16 जीबी रैम को हिट करते हैं तो सुझाव .75xRAM तक कम हो जाता है।

बेशक, मैंने सोलारिस के लिए यह सच पाया, और वास्तव में ओरेकल इंस्टॉलेशन के लिए उपयोग किया जाने वाला मीट्रिक है, इसलिए आप जिन ऐप्स पर चलने वाले हैं, उनके आधार पर YMMV।


2

मैं हमेशा ज्यादा से ज्यादा स्वैप (कम से कम) रैम के रूप में करता हूं। बस के मामले में मैं किसी दिन मशीन को हाइबरनेट करना चाहता हूं। कम के साथ काम कर सकता है, लेकिन साथ ही साथ नहीं कर सकता।

इस समय एचडीडी स्पेस सस्ता है, इसलिए मैं स्वैप स्पेस देने में संकोच नहीं करता।


2

स्वैप स्पेस "पैडिंग" के रूप में काम कर सकता है जब आप अन्यथा मेमोरी से तुरंत बाहर निकल जाएंगे।

जब एक प्रक्रिया सभी उपलब्ध रैम का उपभोग करती है और तब कुछ मशीन बहुत धीमी गति से चलेगी, लेकिन आप आमतौर पर पुनर्प्राप्त करने में सक्षम होंगे। यह देखना भी आसान होगा कि कौन सी प्रक्रिया समस्या पैदा कर रही है।


2
यह एक दोधारी तलवार है: मेरे होम पीसी पर, मैंने फ़ायरफ़ॉक्स 2.x का उपयोग करते समय स्वैप हटा दिया था, क्योंकि यह धीरे-धीरे सभी मेमोरी खा रहा था, और जब मशीन स्वैपिंग हुई तो यह पूरी तरह से अनुपयोगी हो गई; स्वैप के बिना, फ़ायरफ़ॉक्स प्रक्रिया को कर्नेल द्वारा बंद कर दिया गया :)
wazoox

1

वर्षों से मैंने नियम का पालन किया है कि विंडोज मशीनों के लिए आपके पास रैम के रूप में ज्यादा स्वैप है ... नोवेल पर हम अधिक प्रिंटर की अदला-बदली करेंगे यदि हमारे पास अधिक प्रिंटर थे ... लिनक्स के लिए मेरे लिए नियम और अभ्यास 1GB हो गया है आपके पास प्रत्येक 2GB रैम के लिए स्वैप करें। और आप इसे डिस्क के सामने रखते हैं ताकि यह जल्दी पहुंच जाए।

  • अगर यह एक मेल / स्पैम गेटवे है तो मैं डबल स्वैप का उपयोग रैम से करता हूं
  • यदि यह एक * सर्वर है तो मैं स्वैप का उपयोग बिल्कुल नहीं करता
  • यदि यह एक LAMP सर्वर है तो 1/2 नियम प्रभाव में है।

  • आवेदन और जीयूआई उपयोग के आधार पर माइलेज अलग-अलग होगा।


वास्तव में, मुझे लगता है कि डिस्क के बीच में स्वैप सबसे तेजी से एक्सेस किया जाएगा।
एडी

0

मैं 1GB स्वैप बनाता हूं और अधिक RAM खरीदता हूं जिसका दूसरा उपयोग किया जा रहा है। आपको वास्तव में आधुनिक कंप्यूटर पर स्वैप की आवश्यकता नहीं है, रैम इतनी सस्ती है।


0

आप किस प्रणाली के लिए उपयोग कर रहे हैं? व्यक्तिगत रूप से मैं किसी भी स्वैप का उपयोग नहीं करता हूं। अगर कुछ भी एक टोकन 512MB या कुछ का उपयोग करता है तो बस चीजें डिस्क पर डाल दी जा सकती हैं यदि निवासी लेकिन लंबे समय तक निष्क्रिय।


0

मैं बस एक छोटे से टोकन स्वैप का उपयोग करता हूं (आमतौर पर 256 एमबी, लेकिन मैंने 64 एमबी भी किया है) क्योंकि शून्य स्वैप के साथ एक सिस्टम को कॉन्फ़िगर करने के लिए विशेष कॉन्फ़िगरेशन की आवश्यकता होती है।

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

मुझ पर भरोसा करें, थोड़ा धीमा प्रोसेसर खरीदें और अधिक रैम खरीदें। 2.8 गीगाहर्ट्ज़ के बदले 2.8 गीगाहर्ट्ज़ कम से कम 2 जीबी रैम खरीदने के लिए आपके पास पर्याप्त पैसा बचाएगा।

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