स्वैप विभाजन न होने के नुकसान


8

मैंने हाल ही में अपने लैपटॉप पर Ubuntu 10.04 स्थापित किया है। एसएसडी के अंतरिक्ष अवरोध के कारण, मैंने ओएस के लिए एक स्वैप विभाजन निर्धारित नहीं किया है, और मेरे पास 1.5GB रैम है।

स्थापना के दौरान एक चेतावनी है, लेकिन मुझे लगता है कि यह एक बड़ी बात नहीं है क्योंकि सब कुछ सुचारू रूप से चला गया।

लंबी अवधि के लिए, क्या स्वैप विभाजन नहीं होने की कोई कमियां होंगी?


2
गार्टरड अपने रूट ड्राइव के एक जोड़े को खोदने के लिए खुश होंगे, और इसे आसानी और aplomb के साथ करेंगे।
msw

जवाबों:


6

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

विंडोज़ में पेजफाइल के समान एक स्वैपफाइल / स्वैप-विभाजन, हार्डडिस्क स्पेस है जो मेमोरी के बेहतर उपयोग की सुविधा के लिए समर्पित है। स्वैप स्पेस के दो उपयोग हैं।

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

  2. जब कुछ मेमोरी पेज (मेमोरी को 'पेज' में विभाजित किया जाता है) का उपयोग कुछ समय पहले किया जाता है, लेकिन अब इसका उपयोग नहीं किया जाता है, तो इसे स्वैपफाइल पर स्थानांतरित किया जाएगा और शेष मेमोरी का उपयोग कुछ और करने के लिए किया जा सकता है जो अधिक उपयोगी हो सकता है ( उदाहरण के लिए कैशिंग भी!) - जब यह स्वेपस्पेस के बिना किसी सिस्टम में होता है, तो इसके परिणामस्वरूप निष्क्रिय पृष्ठ स्मृति में बने रहेंगे। हालांकि यह बहुत गंभीर नहीं है, क्योंकि हमारे पास इन दिनों बहुत अधिक मात्रा में मेमोरी है।

और फिर, इसलिए अब हमारे पास सूचीबद्ध स्वैप-स्वैप / स्वैप विभाजन के उपयोग हैं, आमतौर पर कितना अदृश्य है? - जो मशीन के कार्य पर निर्भर करता है। यदि यह एक डेस्कटॉप मशीन है, तो इसे 1-1.5x मेमोरी पर सेट करें। यदि यह एक सर्वर मशीन है, तो ऐसा ही करें, लेकिन स्वैप उपयोग पर ध्यान दें, यदि यह भारी उपयोग किया जाता है, तो स्मृति को अपग्रेड करें।

जैसा कि दूसरों ने बताया है, gparted आपको अपने ext2 / ext3 विभाजन से अंतरिक्ष के कई गीगों को बाहर निकालने में मदद कर सकता है, लेकिन आप स्वैफ़ाइल का उपयोग भी कर सकते हैं:

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile
swapon /swapfile

आपको होना चाहिए

swapfile none swap sw 0 0

पर fstabसुनिश्चित करने के लिए यह हर रिबूट पर इस्तेमाल किया जा रहा

और एक और बात: यदि आपके पास स्वैपस्पेस के लिए कोई आपत्ति नहीं है, लेकिन उपयोग को कम से कम करना चाहते हैं, जब तक कि आपकी मेमोरी वास्तव में बाहर नहीं हो जाती है, तो आप कर्नेल के "स्वैप्नेस" को बदलकर बदल सकते हैं /proc/sys/vm/swappiness(मान, 0-100; डिफ़ॉल्ट; 60)।


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

@TOOGAM यह 2010 में था, जब लोग अपने डेस्कटॉप में 2-4GB RAM जैसे सामान का उपयोग करते हैं।
बुबु


3

यदि आप कभी भी स्मृति से बाहर निकलते हैं, तो अप्रत्याशित व्यवहार आपके कार्यक्रमों के लिए हो सकता है। कभी-कभी कर्नेल यादृच्छिक स्थानों पर स्मृति को छोड़ना शुरू कर देगा । कर्नेल कम प्राथमिकता वाली प्रक्रियाओं को छोड़ना शुरू कर देगा।

कोई भी वर्चुअल मेमोरी बड़ी मुसीबत पैदा नहीं कर सकती है, खासकर अगर यह मेमोरी को महत्वपूर्ण दस्तावेजों को मारने से शुरू करने जा रही है जिनकी कम प्राथमिकता है, जिस पर काम किया जा रहा है।


3
यह इस बात की परवाह किए बिना होगा कि आपने स्वैप किया था या नहीं।
इग्नासियो वाज़केज़-अब्राम्स

2
वास्तव में, कर्नेल "यादृच्छिक स्थानों पर स्मृति को छोड़ना शुरू नहीं करेगा"। बल्कि यह वही करेगा जो करना होगा और स्थिति को सुधारने तक "कम महत्वपूर्ण" समझी जाने वाली प्रक्रियाओं को मारना शुरू कर दें। यह "OOM किलर" द्वारा किया जाता है। उदाहरण देखें linux-mm.org/OOM_Killer
sleske

मुझे सही साबित होना है।
नाइट्रोडिस्ट

0

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


मैं उत्सुक हूं, क्या रनिंग प्रक्रियाओं के लिए मेमोरी को फ्री करने के लिए लाइनक्स को इसके कर्नेल के कुछ हिस्सों को बनाना संभव है?
इगोर Zinov'yev

शायद नहीं, लेकिन आप जानते हैं कि मेरा क्या मतलब है ...
हैलो71

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

0

पूर्ण उत्तर नहीं है, लेकिन यहां एक बात की कहानी है जिसने वास्तव में मुझ पर हमला किया, यहां तक ​​कि जब मैं सोच रहा था कि मेरे पास हर संभव नकारात्मक प्रभाव है:

/programming/4567972/error-executing-aapt-all-of-the-sudden सारांश में, कुछ उपकरण वास्तव में बड़े जावा प्रक्रियाओं / अनुप्रयोगों से चलते हैं, जो हमेशा नहीं चल पाएंगे। अधिकांश नियमित उपयोगकर्ता हालांकि इसमें नहीं चलेंगे।

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