मैं मैक ओएस एक्स में स्वैप फाइल को क्यों निष्क्रिय करूंगा?


51

मैं मैकबुक प्रो में एक एसएसडी ड्राइव स्थापित करने के बारे में एक सूत्र में आया था।
टिप्पणियों में किसी ने स्वैप फ़ाइल को अक्षम करने की भी सिफारिश की, लेकिन यह नहीं बताया कि:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*

मुझे आश्चर्य है कि कोई मैक ओएस एक्स में स्वैप फ़ाइल को अक्षम क्यों करना चाहेगा।
क्या यह प्रदर्शन बढ़ाता है? स्थिरता?
कोई डाउनसाइड?

अंत में, SSD का उपयोग करने पर स्वैप फ़ाइल को अक्षम करने का कोई मतलब है ?


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

2
क्या होता है भयावह प्रभाव? बस जिज्ञासु ... यह एक टन तेजी से मेरी मशीन (4 जीबी मैकबुक प्रो) बनाने लगता है। उदाहरण के लिए, जब मैं नई टर्मिनल खिड़कियां खोलता हूं तो अब कोई अवरोधक नहीं है ... यह तत्काल है जहां पहले कई सेकंड लगे थे। और मैं दो बार उतने ही ऐप खोल पाया जितना कि मैं सामान्य रूप से इस्तेमाल करूंगा और कुछ भी बुरा नहीं हुआ।
नारंगी Sep०

4
नारंगी 80: धीमी टर्मिनल खिड़कियों का सामान्य कारण पिछली लॉगिन को देखने वाली लॉगिन प्रक्रिया है, जिसे hushlogin द्वारा तय किया जा सकता है: Apple.stackexchange.com/a/54167/22570 - क्या आपने स्वैप सेटिंग बदलने के बाद रिबूट किया था, हो सकता है ? कोई कारण नहीं है कि स्वैप को हटाकर टर्मिनल विंडो की गति में सुधार किया जाएगा।
केन

मैं समझता हूं कि एक छोटी सी क्षमता वाले एसएसडी से आप खाली जगह खाली कर सकते हैं। लेकिन प्रदर्शन के पक्ष में, SSDs HD की तुलना में तेज़ होते हैं इसलिए मैं यह नहीं देखता कि SSD आधारित OS में स्वैपिंग को अक्षम करने से वास्तव में प्रदर्शन में सुधार कैसे होगा। उस पर कोई अनुभव? धन्यवाद।

1
सुपर यूजर में, एक स्वीकृत उत्तर के साथ: मैक का डायनेमिक_पेसर अक्षम करें? (2012-04-27)
ग्राहम पेरिन

जवाबों:


39

आश्चर्य है कि कोई मैक ओएस एक्स में स्वैप फ़ाइल को अक्षम क्यों करना चाहेगा। क्या यह प्रदर्शन बढ़ाता है? स्थिरता? कोई डाउनसाइड?

मुझे लगता है कि लोग इसे SSD ड्राइव के लिए करेंगे क्योंकि उन ड्राइव में मानक मैग्नेटिक स्पिनिंग-डिस्क ड्राइव के समान जीवनकाल नहीं होता है। अधिक सीमित संख्या में लिखने के चक्र हैं, इसलिए संभवतः उन्हें स्वैप फ़ाइल के साथ उपयोग करने से ये चक्र अधिक तेज़ी से उपयोग होंगे।

अंत में, SSD का उपयोग न करने पर स्वैप फ़ाइल को अक्षम करने का कोई मतलब है?

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

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


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

2
@geotavros Mac OS X में वर्चुअल मेमोरी सिस्टम विंडोज के समान काम नहीं करता है । 4GB मेमोरी के साथ, मुझ पर भरोसा करें, वर्चुअल मेमोरी सक्षम होने के साथ आपका मैक तेजी से काम करेगा। VM को अक्षम करने से आपको केवल सिरदर्द और सिस्टम अस्थिरता होगी।
घोप्पे

3
FYI, राइट-लेवलिंग के साथ एक आधुनिक SSD और निरंतर रूप से लिखी जाने वाली एक सभ्य क्षमता (128 GB), सदियों में मापी गई एक लेखन-चक्र-सीमा होगी। यह 2000 में छोटे, आदिम SSDs के साथ एक उचित डर था, लेकिन किसी भी अधिक नहीं।
केन

3
8 जीबी मेमोरी के साथ मैकबुकप्रो 5,2 के लिए प्रदर्शन में सुधार नाटकीय है। एक VirtualBoxVM में हिम तेंदुए या शेर के लिए सुधार आश्चर्यजनक है। सभी तीन मामलों में ओएस स्मृति का उपयोग इस तरह से करता है जो 'सीमा' तक पहुंचने के जोखिम को कम करता है (जहां सभी चीजें प्रभावी रूप से बंद हो जाती हैं) लेकिन यह जोखिम बना रहता है, इसलिए यह गतिविधि मॉनिटर में उपयोग का निरीक्षण करने के लिए समझदार है।
ग्राहम पेरिन

2
जानकारी के लिए VM (या वर्चुअल मेमोरी) स्वैप फ़ाइल के साथ भ्रमित नहीं होना चाहिए। विंडोज, ओएस एक्स, * बीएसडी, लिनक्स, कई यूनिक्स सभी वर्चुअल मेमोरी का उपयोग कर रहे हैं। आमतौर पर इस OSes का आर्किरेक्चर एक वीएम प्रति प्रक्रिया देता है, इस क्षेत्र के भीतर मेमोरी आवंटित करने की प्रक्रिया और OS इस आवंटित मेमोरी को भौतिक रैम पर डालने या ओएस डीम्स के रूप में स्वैप करने का ध्यान रखता है। स्वैप करना या न होना विभिन्न मानदंडों (गति, प्रतिक्रिया, आदि) के लिए एक तरह से या अन्य प्रदर्शन में बदल सकता है, यह हम में से प्रत्येक के कार्यभार पर निर्भर करेगा। जैसा कि अंग्रेजी के लोग कहते हैं: आपका माइलेज अलग-अलग हो सकता है! और इस मामले में बहुत।
Huygens

27

कारण है कि वे स्वैप फ़ाइल को निष्क्रिय कर देते हैं, SSDs के बारे में प्रति ब्लॉक अधिकतम संख्या में लिखने की संभावना है। स्वैप फाइलें अक्सर लिखी जा सकती हैं, संभवतः डिस्क विखंडन (और साथ ही फ़ाइल सिस्टम विखंडन) के कारण और अंततः, संभवतः डिस्क के जल्द ही विफल होने का कारण बन सकता है।

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

डिस्क स्थान से बाहर निकलते समय मैंने बाद में अनुभव किया (स्वैप फ़ाइल सक्षम के साथ)। मेरे पास 120 गीगा ड्राइव था जिसमें ~ 3 गिग्स फ्री थे। सभ्यता IV (एक बड़ा, पूर्ण-स्क्रीन गेम) खेलते समय, सिस्टम हार्ड ड्राइव स्पेस से बाहर चला गया (~ 50 megs free) और "किल एप्स नाउ" विंडो को प्रस्तुत किया। यह फुल-स्क्रीन गेम के पीछे छिपा हुआ था, इसलिए सिस्टम सिर्फ लॉक हो गया। अगर मैं दूरस्थ रूप से कई ऐप्स को मारने के लिए दूसरे मैक से ssh नहीं कर पाया, तो मुझे पावर बटन दबाए रखना होगा।


6
मैं यह कहना चाहता हूं कि यह एक बुरा विचार है। अगर आपके पास 16 जीबी रैम है तो भी स्वैप का उपयोग किया जाता है। उतना नहीं है, लेकिन एक छोटे से बिट पहले से ही स्वैप में लिखा है। हमेशा। यह एक सुरक्षा है। और जब ओएस इसके बिना चल सकता है, तो आप यह सुनिश्चित नहीं कर सकते कि 3 पार्टी ऐप कैसे व्यवहार करते हैं। एचडी को लिखा गया। यह एक तथ्य है अगर जीवन। और नहीं, कोई "वास्तविक दुनिया" प्रदर्शन वृद्धि नहीं होगी। वह एक प्लेसबो है।

4
कुछ विशेष सर्वर परिदृश्यों में, sysadmins स्वैप फ़ाइल को अक्षम कर देगा क्योंकि यह उस विशिष्ट कॉन्फ़िगरेशन को तेज़ी से बनाता है, लेकिन वे यह सुनिश्चित करने के लिए परीक्षण किए बिना कि यह दोनों (ए) मेमोरी से बाहर नहीं चलेगा और (बी) ) यह वास्तव में तेज है। लेकिन यह पेशेवरों द्वारा चलाया जाने वाला सर्वर है: उपभोक्ता मशीन पर यह कभी आवश्यक नहीं है।
CajunLuke

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

इसलिए यदि कोई 3 पार्टी ऐप उपलब्ध मेमोरी से अधिक मेमोरी का अनुरोध करता है, तो ओएस इसे एक त्रुटि देगा। यह स्वैप होने या न होने से स्वतंत्र है। स्वैप होने से बस सीमा अधिक होगी, बस। प्रदर्शन के लिए, यदि आपके पास 2 उपयोगकर्ता हैं, यदि सक्रिय उपयोगकर्ता बड़ी फ़ाइलों के साथ वीडियो संपादक का उपयोग करता है, तो OS सक्रिय उपयोगकर्ता द्वारा किए गए कार्यों को गति देने के लिए निष्क्रिय उपयोगकर्ता के मेमोरी पेज को स्वैप में डालना शुरू कर सकता है। आपको इस मामले में गति के मामले में बेहतर प्रदर्शन मिलता है। हालांकि, अन्य उपयोगकर्ता के लिए स्विचिंग धीमी होगी, ओएस को स्वैप को वापस पढ़ना होगा। यह एक प्लेसबो नहीं है!
Huygens

1
मैं एक बार (लिनक्स में) सेटअप करते समय एक स्वैप विभाजन स्थापित करना भूल गया। जब मैं लटका हुआ था, तो मुझे लगा कि यह एक कर्नेल बग है - यह पता चला कि यह स्वैच्छिक स्मृति की कमी थी, जबकि मैंसक्राफ्ट खेल रहा था। स्वैप का उपयोग करें।
व्याट8740

12

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

आप स्वैप को अक्षम कर सकते हैं इसका कारण यह है कि सिस्टम रीड मीडिया पर ही चल सकता है जैसे कि सीडी, डीवीडी, नेटबूट का उपयोग करके लॉक की गई नेटवर्क इमेज या रीड लायन इंस्टॉलर की तरह केवल यूएसबी फोब या रिकवरी फोब जो कि कुछ मैक वाले जहाजों में ऑप्टिकल की कमी है ड्राइव।

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

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

यदि आपके पास प्रयोग करने के लिए एक बैकअप और समय है, तो इसे बंद क्यों न करें और देखें कि आपका अनुभव कैसे बदलता है।

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

SSD के साथ आपका मामला अलग हो सकता है, इसलिए यदि आप इसे आजमाते हैं तो हमें बताएं।


2
जब डायनेमिक_पेजर को अक्षम किया जाता है , तो मैं इसके विपरीत, एक विशाल स्पीडअप पाता हूं । वर्तमान में apple.stackexchange.com/a/60661/8546 पर स्क्रीनशॉट वर्चुअल मेमोरी साइज और पेज इन्स को मापा जाता है, जबकि डेमन अक्षम है (जबकि स्वैप फाइल का उपयोग नहीं किया जाता है)।
ग्राहम पेरिन

स्पीडअप निर्धारित करने के लिए क्या ठीक मापा जा रहा है? (या आप अंतराल या यूआई या कुछ और है कि आसानी से मात्रात्मक या औसत दर्जे का नहीं है में हो रही देरी के अभाव देख रहे हैं?)
bmike

मापने के बिना: शेर के साथ, ज्यादातर चीजें काफी तेज लग रही थीं - मेरे लिए बहुत बड़ा शब्द का उपयोग करने के लिए पर्याप्त है । हाल ही में: 10.8 एक VirtualBoxVM में, उदाहरण के लिए, लॉग इन करें और फिर से शुरू करने के लिए गतिविधि मॉनिटर सोलह सेकंड के साथ dynamic_pager, बारह सेकंड के बिना लेता है । व्यापक और अधिक मापी गई तुलना के लिए हम Phoronix Test Suite या Geekbench का उपयोग कर सकते हैं ।
ग्राहम पेरिन

9

मैं यहाँ नायिका बनूंगी: मैंने अपने 2008 के अंत में आने वाली मैकबुक प्रो में स्वैप को अक्षम कर दिया था और इसमें उल्लेखनीय रूप से प्रदर्शन में सुधार हुआ: कम प्रतीक्षा, अनुप्रयोगों के बीच तेजी से स्विच करना।

माइंड यू, मैं अपनी फ्री मेमोरी पर नजर रखता हूं और मैंने 6GB इंस्टॉल किया है। कुछ बार जब मैंने मेमोरी लिमिट को मारा, तो सिस्टम क्रैश हो गया :-D

अपने नए मैकबुक एयर पर मैं स्वैप को अक्षम करने का सपना नहीं देखूंगा, यह पहले से ही सक्षम है और इसे शुरू करने के लिए केवल 4GB है।

एक और अच्छा कारण है कि लोग SSD पर स्वैप अक्षम कर देते हैं क्योंकि वे छोटे SSDs प्राप्त करते हैं और उन्हें मिलने वाली सभी जगह की आवश्यकता होती है। किसी भी मामले में, यह मत करो।


वास्तविक अनुभव के लिए बहुत बढ़िया जहां यह काम किया। स्वैप अक्षम होने पर मशीन पर रैम की प्रतिबद्धता क्या थी? जब आप रैम में फिट होंगे तो अधिक ऐप खोलने पर क्या होगा? आपके पास कितनी रैम थी और कौन सी ऐप्स उस जगह पर बिना किसी त्रुटि के आराम से चलेंगी?
bmike

1
@bmike, निश्चित नहीं है, सिस्टम क्रैश करता है :-D, 6GB और मेरे द्वारा उपयोग किए जाने वाले सभी :)। एपर्चर या XCode वास्तविक मेमोरी हॉग हैं और वे कभी-कभी सिस्टम पर टिप दे सकते हैं लेकिन स्काइप, मेल, एडियम, सफारी, क्रोम, आईट्यून्स और ओम्नीफोकस सभी अच्छी तरह से फिट होते हैं ...
w00t

6

मेरा अनुभव w00t के समान है। मैंने SL और Lion पर स्वैप फ़ाइल को अक्षम कर दिया है क्योंकि प्रदर्शन में वृद्धि मेरे लिए काम करती है। वायर्ड उपयोग एक या दो सप्ताह के बाद नियंत्रण से बाहर हो जाता है लेकिन एक साधारण रिबूट ठीक करता है। मेरे पास SSD नहीं है लेकिन एक धीमी 5400rpm डिस्क है। SSD जीवन काल वास्तव में उतना बुरा नहीं है जितना कि लोग उन्हें हालांकि बनाने की कोशिश करते हैं। यदि आप ऐसा सिर्फ इसलिए कर रहे हैं क्योंकि आप अपना SSD पहनने से डरते हैं तो कृपया देखें: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd / 2 और http://communities.intel.com/thread/21717?tstart=0 इंटेल 80GB ड्राइव पर 5 साल तक, प्रति दिन 20GB से अधिक के लिए अपनी ड्राइव की दर तय करता है। बड़ा आकार ड्राइव और भी लंबे समय तक चलेगा। औसत उपयोगकर्ता 10GB / दिन का भी उपयोग नहीं करता है।

मैं iStat मेनू के साथ अपने 4GB मेमोरी उपयोग की निगरानी करना सुनिश्चित करता हूं और निष्क्रिय मेमोरी को खाली करने और अधिक मुक्त मेमोरी को बार-बार खोलने के लिए "purge" bash कमांड (Xcode स्थापित करने की आवश्यकता है) के साथ एक ऑटोमेटर स्क्रिप्ट का उपयोग करता हूं। जितनी बार मेरे पास मेमोरी लीक्स वाले ऐप्स आए हैं, सभी रैम का उपयोग करते हैं, मुझे एक हार्ड रीसेट करना पड़ा। ऐसा होने के दुर्लभ अवसर और सामान्य रूप से गति मेरे लिए स्वैप फ़ाइल को निष्क्रिय रखने के लिए सार्थक है। मुझे लगता है कि मेरे पास एक साथ इतने सारे ऐप नहीं खुले हैं क्योंकि यह दूसरों द्वारा कहा गया है, लेकिन मैं इसके साथ काम करने में सक्षम हूं।


मेमोरी स्कोप में स्वतः शुद्ध होने का विकल्प होता है। (यदि डायनेमिक_पेजर सक्षम है, तो मैं पर्स को हटा देता हूं।)
ग्राहम पेरिन

5

बस उन लोगों के लिए मेरे 2 सेंट में फेंकने के लिए जो छोटे SSDs के स्वैप को अक्षम करना चाहते हैं: स्लीपिमेज कहीं अधिक डिस्क स्थान का उपयोग करता है।

और, एसएसडी के सीमित जीवन के बारे में चिंतित लोगों (विशेष रूप से एमबीए वाले और हार्ड-वायर्ड एसएसडी चिप्स जिन्हें CANNOT नहीं बदला जा सकता है) के लिए, यदि आपका कंप्यूटर प्रति दिन कई बार सोता है, तो स्लीपिंग का पुनर्लेखन एक चिंता का विषय हो सकता है। मेरा लैपटॉप आधा दर्जन बार / दिन आसानी से सो जाता है। जो रोजाना मेरे एसएसडी को 48GB डेटा लिखता है।

प्रत्येक मामले में समाधान हाइबरनेशन को अक्षम करना है, और फिर स्लीपइमेज फ़ाइल को हटा दें जो आपके इंस्टॉल किए गए रैम (मेरे मामले में 8 जीबी) जितनी बड़ी है।

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

टर्मिनल में हाइबरनेशन को अक्षम करने के लिए, कमांड निम्नानुसार है:

 sudo pmset -a hibernatemode 0

हाइबरनेशन को सक्षम करने के लिए, कमांड निम्नानुसार है:

 sudo pmset -a hibernatemode 3

SSD / HDD स्पेस को खाली करने के लिए अंतिम स्लीपेज को हटाने के लिए (केवल तभी समझ में आता है जब आप हाइबरनेशन को बंद कर देते हैं, अन्यथा अगली बार आपके कंपाउंड की नींद पूरी होने पर एक नया स्पेस लेगा):

 sudo rm -rf /var/vm/sleepimage

स्रोत: आदमी pmset


3

स्वैप को अक्षम करने से करता है के प्रदर्शन को बढ़ाने। उदाहरण के लिए, मैं नियमित रूप से एपर्चर का उपयोग करता हूं और जब स्वैप बढ़ता है तो प्रदर्शन बिगड़ जाता है और जब यह 1Gb से आगे बढ़ जाता है तो मुझे इसे साफ करने और प्रदर्शन को पुनर्स्थापित करने के लिए ओएस को पुनरारंभ करना होगा। नोट: मशीन में 6GB RAM है और इस पर सभी का कब्जा नहीं है, लगभग 3GB मुफ्त है, लेकिन 1G स्वैप में काफी खराब प्रदर्शन है।


3

मैं कई वर्षों से मशीनों पर स्वैप को अक्षम कर रहा हूं, ओएस एक्स और अन्य यूनिक्स संस्करणों पर।

जब मेमोरी कम चल रही हो, तो मुझे अलर्ट करने के लिए मैं एक टूल का इस्तेमाल करता हूं और कभी भी अपने सिस्टम के क्रैश होने की चिंता नहीं करता।

मेरे आईमैक में 12GB है, और स्वैप अक्षम के साथ मेरे पास लगभग हमेशा 4GB मुफ्त है, यहां तक ​​कि कई विकास उपकरण, एप्लिकेशन, फुटेज आदि भी खुले हैं।


5
आप किस मेमोरी टूल का उपयोग कर रहे हैं?
दिमित्री

1

यहाँ दोहरा पैटर्न यह है:

जिन लोगों ने विकलांग स्वैप फ़ाइल को बेहतर प्रदर्शन (पर्याप्त भौतिक रैम के साथ) अनुभव किया है

जिन लोगों ने स्वैप स्पेस को अक्षम नहीं किया है, वे निश्चित हैं कि यह काम नहीं करेगा, और कुछ भयानक होगा, और वे आपको सलाह दे रहे हैं कि आप ऐसा न करें।

यह केवल दो चीजों के कारण है:

  1. भौतिक रैम की कमी और उच्च लागत के बारे में पुराने विचार जो अब मान्य नहीं हैं
  2. MacOS में वास्तव में खराब स्वैपिंग तंत्र जब पर्याप्त भौतिक रैम है, तो स्वैप फ़ाइलों का उपयोग करता है।

1
यदि आवश्यकता पड़ने पर केवल स्वैप स्थान का उपयोग किया जाता है, तो यह बहुत अच्छा होगा। हालाँकि, ऐसा नहीं है। मैं अपने macOS पर 2gb और 4gb वर्चुअल मशीन चलाता हूं। अगर मेरे पास 1.6 जीबी की मुफ्त रैम है, तो मुझे 1 जीबी वर्चुअल मशीन (या अन्य प्रोग्राम) चलाने में सक्षम होना चाहिए, लेकिन मैं ऐसा नहीं कर सकता क्योंकि ओएस इसे शुरू करना चाहता है। नतीजतन, मैं केवल 85-90% रैम का उपयोग कर सकता हूं। अगर मैं अपने सभी RAM में जाना चाहता हूं, तो मुझे पेजिंग को अक्षम करना होगा। मैं अपने सभी विंडोज मशीनों पर ऐसा करता हूं, और अपने मैकओएस पर भी ऐसा ही करना चाहता हूं। यदि कोई प्रोग्राम RAM से बाहर निकलता है, तो वह विफल हो जाएगा। यही मैं होना चाहता हूं। मैं अन्य नहीं चाहता, चल रहे अनुप्रयोगों

3
YMMV। मैं अब स्वैप को अक्षम नहीं करता हूं क्योंकि मैंने इसे आधुनिक, रैम-लोडेड मशीनों पर प्रदर्शन में मदद करने के लिए नहीं पाया है। मैं अतीत में इस्तेमाल किया करता था क्योंकि यह बुरे पुराने दिनों में मदद करता था। आजकल न केवल मैं स्वैप को अक्षम करके कोई प्रदर्शन परिवर्तन नहीं देख रहा हूं, मुझे एप्लिकेशन की अस्थिरता बहुत बढ़ गई है।
ब्रायन नोब्लुच

1
अवांछनीय बात यह है कि होगा ऐसा एक मानव भूल जाएगा कि है कि वे एक कम स्मृति त्रुटि के कारण एक अन्य कार्यक्रम के लिए और समय में, मशीन दुर्घटना होगा शुरू नहीं कर सकते हैं। चाहे यह भयानक, विनोदी हो, शैक्षिक समय, आपकी बैकअप आवृत्ति और देरी के लिए सहिष्णुता पर निर्भर करता है।
bmike

1

बस एक व्यक्तिगत अनुभव।

Memory Amount    |
 4 GB            | Don't disable it, Mountain Lion itself boots with about 1 GB.
 8 GB            | Do if you don't run apps that requires more than 1 GB of memory, in short, virtualization software, Photoshop, and stuff.
16 GB or more    | Do it! Even Xcode or Final Cut won't use more than 4 GB of memory, at least as I've seen. Just don't run too many virtual machines though.

एक त्वरित टिप्पणी: यदि आपका मैक एकीकृत ग्राफिक्स का उपयोग करता है, तो इसकी मेमोरी आपकी मुख्य मेमोरी के साथ कर्नेल_टैस्क के साथ साझा की जाती है। इस प्रकार, आपको उस राशि को अपने कुल उपयोग योग्य से घटाना होगा।

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


1
मैंने अपने रेटिना मैकबुक प्रो पर व्यक्तिगत रूप से वर्चुअल मेमोरी को केवल 8 जीबी मेमोरी के साथ अक्षम कर दिया है। यहां गणित है, सिस्टम लगभग 2 जीबी मेमोरी की गिनती एकीकृत ग्राफिक्स का उपयोग करता है। तो मेरे लिए यह 6 जीबी है। मैं काम के लिए Xcode करता हूं, उस समय 2 GB से अधिक मेमोरी नहीं खाता है। इसलिए मेरे पास बहुत कुछ है।
शेन होंसु

1

कार्यकारी सारांश

एक स्वैप क्षेत्र (जिसे स्वैप पार्टीशन, स्वैप फाइल या पेज फाइल कहा जाता है) ओएस द्वारा पता लगाने योग्य भौतिक मेमोरी को बढ़ाने के लिए एक तंत्र है।

यदि आप उपलब्ध भौतिक रैम में कम हैं, और आज की मशीन पर, मैं कहूंगा कि यदि आपके पास 4 जीबी या उससे कम रैम है। तब शायद आपके पास एक स्वैप होना चाहिए। लेकिन यह आपके काम के बोझ पर निर्भर करता है और आप अपनी मशीन का उपयोग कैसे करते हैं।

यदि आपके पास 4GB से अधिक रैम है, तो एक अच्छा मौका है कि आपका सिस्टम कभी भी स्वैप का उपयोग नहीं कर सकता है। तो अगर स्वैप सक्षम है या नहीं, तो यह ज्यादा नहीं बदलेगा।
यद्यपि यह अन्य कारकों पर निर्भर करता है, अब जितनी देर तक आपकी मशीन चल रही होगी, उतनी ही संभावना होगी कि ओएस रैम के छोटे अप्रयुक्त हिस्से को स्वैप करने के लिए स्वैप कर देगा। हालाँकि, अक्सर सिस्टम फ़ाइल बफ़र्स और अन्य सामान के लिए "फ्री" रैम का उपयोग करता है, और कुछ कार्यभार आपके फ़ाइल बफर का उपयोग सभी उपलब्ध रैम कर सकते हैं।

पृष्ठभूमि की जानकारी

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

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

मेरे पास 8 और 16 जीबी रैम के साथ 2 मशीन हैं। इन मशीन का मेरा व्यक्तिगत उपयोग मुझे कभी भी इस रैम के उपयोग के करीब नहीं लाना चाहिए (आज (शायद कुछ वर्षों में जो अलग हो सकता है)। एकमात्र कारण जो मैं भौतिक RAM सीमा को मारता हूं, वह यह है कि एक प्रक्रिया बदमाश हो गई और सभी RAM का उपभोग कर रही है। स्वैप नहीं होने से राहत मिलती है, कर्नेल तुरंत रैम प्रक्रिया को हिट करते ही दुष्ट प्रक्रिया को मार देगा। यदि आप स्वैप करते हैं, तो आपको एक दर्दनाक अनुभव मिलेगा (शायद एसएसडी पर नहीं ...) के रूप में आपकी प्रणाली स्वैप और स्वैप और स्वैप हो जाएगी और कभी-कभी पूरी तरह से अनुत्तरदायी हो जाएगी जब तक कि उम्मीद है कि आपका कर्नेल अपराधी को मार डाले!

सलाह देता है

आपको लोगों को यह बताने से डरना नहीं चाहिए कि यदि आप स्वैप हटाते हैं तो कुछ बहुत ही गलत हो सकता है। यदि आप ऐसा करते हैं, तो आपका भौतिक पता स्थान कम हो जाएगा, जैसे कि आप 4 जीबी रैम से 2 जीबी तक जाएंगे। क्या आप ऐसा काम करेंगे? फिर आपको स्वैप को नहीं निकालना चाहिए। हालाँकि आप इसे सीमित करने का निर्णय ले सकते हैं, और यह बुद्धिमान होगा

यदि किसी को लगता है कि उसका कार्यभार उसे उपलब्ध भौतिक रैम से अधिक या अधिक उपयोग करने के लिए ला सकता है, या यदि किसी को I / O (रीड / राइट टू डिस्क) की बहुत आवश्यकता है, तो स्वैप रखा जाना चाहिए।

जब स्वैप रखा जाना चाहिए, तो उपयोगकर्ता को उस मात्रा की सीमा निर्धारित करने का प्रयास करना चाहिए जो एक प्रक्रिया का उपयोग कर सकती है। लिनक्स सिस्टम पर, कोई cgroups मेमोरी लिमिट्स का उपयोग करने से बच सकता है ताकि कुछ प्रक्रिया नियंत्रण से बाहर हो जाए, मुझे OS X के बराबर पता नहीं है लेकिन यह तरीका होना चाहिए।

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

प्रति प्रक्रिया या प्रक्रियाओं के समूह में मेमोरी सीमा निर्धारित करने के लिए ऊपर दिए गए समान ट्रिक का उपयोग करना भी पर्याप्त उपलब्ध रैम से अधिक के मामले में लाभार्थी है।

मेरा अपना उदाहरण

मेरे पास 1 जीबी रैम के साथ एक पुराना पीसी है, वहां मेरे पास एक बड़ा स्वैप है: 4 जीबी इसलिए मैं फ़ायरफ़ॉक्स और उस पर अन्य एप्लिकेशन चला सकता हूं। यद्यपि मुझे एक सही उपयोगकर्ता अनुभव प्राप्त करने के लिए जितना संभव हो उतना कम एप्लिकेशन (या फ़ायरफ़ॉक्स में टैब) का उपयोग करना पड़ता है।

मेरे पास 8 जीबी रैम वाला एक छोटा सर्वर है। वहाँ मुझे ठीक-ठीक पता है कि मेरा काम का बोझ है और मैं नहीं चाहता कि मेरा सर्वर धीमा हो क्योंकि एक प्रक्रिया दुष्ट हो गई है और सभी मेमोरी का उपभोग कर रही है। वहाँ मेरे पास कोई स्वैप और cgroup मेमोरी सीमा अवरोधक नहीं है, इसलिए एप्लिकेशन या सेवाएं क्रैश हो सकती हैं लेकिन कर्नेल नहीं। Btw, यह एक लिनक्स मशीन है।

फिर, मेरे पास 16 जीबी रैम के साथ मेरा मैक है। मैं इसका एकमात्र उपयोगकर्ता नहीं हूं, और उपयोगकर्ता को स्विच करते समय हम इंतजार नहीं करेंगे। वहां हमारे पास स्वैप है, इस कंप्यूटर के अन्य उपयोगकर्ताओं के कार्य भार की योजना बनाना मेरे लिए मुश्किल है। यहां तक ​​कि अगर मैं केवल एक ही होगा तो मैं स्वैप का उपयोग करूंगा। मैं अक्सर कई वीएम चलाता हूं और मेमोरी खपत करने वाले एप्लिकेशन का उपयोग करता हूं, लेकिन सभी एक ही समय में नहीं, इसलिए मैं अप्रयुक्त ऐप में ओएस स्वैपिंग का मन नहीं बनाऊंगा ताकि मैं तेजी से डिस्क I / O प्राप्त कर सकूं या किसी अन्य वीएम को लॉन्च कर सकूं। अब तक, मैंने इस मशीन की अदला-बदली नहीं देखी है!


0

मैंने अपनी 2011 मैकबुक एयर (4 जीबी रैम, 128 जीबी एसएसडी) पर स्वैप फाइल को सिर्फ इसलिए निष्क्रिय कर दिया क्योंकि मैं स्वैप फाइल के बीमार होने के कारण धीरे-धीरे अपने सभी शेष एचडी स्पेस को खा रहा था और फिर से शुरू हो रहा था। इस तरह, यह विचार है कि मैं सिर्फ कम कार्यक्रम चलाऊंगा।

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

मैं देखूंगा कि यह कैसे स्थिरता के साथ आगे बढ़ता है, लेकिन अभी तक मैं एक खुश कैम्पर हूं। यह मुझे एक बार में कम एप्लिकेशन (और क्रोम टैब) चलाने के लिए भी मजबूर करता है, जो कि टास्क फोकस के लिए अच्छा है।


0

स्वैपफाइल को निष्क्रिय करने का प्राथमिक कारण गति नहीं है - यह डिस्क स्थान है।

यदि कोई ऐसा उपयोगकर्ता है जो पूरी तरह से ड्राइव के 5 जीबी के भीतर नियमित रूप से चलता है, तो स्वैप को अक्षम करना अंतरिक्ष से बाहर चलने के निरंतर अंतराल को रोक देगा; मैं नियमित रूप से ब्राउजिंग से 4+ जीबी स्वेपफाइल से हवा करता हूं।

पुरानी मशीनों पर गति सुधार आश्चर्यजनक है; यह SSD सुसज्जित आधुनिक मशीनों पर प्रभावशाली नहीं है। (एक iMac पर OSX 10.0 के तहत, वर्चुअल मेमोरी का उपयोग करके ड्राइव के बीच फाइलों को कॉपी करने सहित कई ऑपरेशन की गति को आधा कर दिया)।


लगता है कि हॉर्न को ठीक करने में ज्यादा मजा आता है क्योंकि ब्रेक काम नहीं करता है। यदि ड्राइव बहुत अधिक भरी हुई है, तो इसे बंद करें।
टेटसुजिन

@Tetsujin उस ड्राइव पर सबसे बड़ी एकल फ़ाइल स्वैप की गई थी।
अरमीस

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