मैं स्थायी रूप से स्वैप को कैसे बंद कर सकता हूं?


64

स्वैप मेरे सिस्टम को सभी सुस्त बना देता है और इसे बंद करने से सब कुछ सुचारू हो जाता है। मेरे पास 3.5 जीबी रैम है।

मुझे पता है कि sudo swapoff -aटर्मिनल में प्रवेश करके स्वैप को कैसे बंद किया जाए , लेकिन यह सिर्फ वर्तमान सत्र के लिए है, क्योंकि एक रिबूट स्वैप के बाद यह स्वयं चालू हो जाता है। क्या स्थायी रूप से स्वैप बंद करने का कोई तरीका है?


2
AFAIK स्वैप का उपयोग हाइबरनेशन के लिए किया जाता है। सिर्फ '
दानमैन

1
हाँ यह है, लेकिन यह अभी भी इस्तेमाल किया जा सकता है। मेरे पास एक छोटी सी स्क्रिप्ट है जो स्वैप विभाजन को मापती है जब सिस्टम हाइबरनेशन में जाता है और वापस आने पर इसे अन-mounts करता है। स्वैप फ़ाइल को इस बीच सक्रिय होने की आवश्यकता नहीं है।
पशुपतिसेकिया

सीधे शब्दों में swapoff -a को /etc/rc.local पर रखें और उस बारे में भूल जाएं ...;)
user264467

1
@ user264467: स्वैप को हर रीबूट पर अक्षम करने के लिए सक्षम करने के लिए यह काफी उलट है, इसे अनुमति से निष्क्रिय करने के लिए बहुत क्लीनर है।
कराटेग डेस

जवाबों:


119

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

इसलिए, स्वैप को पूरी तरह से अक्षम करने के बजाय, बस यह सुनिश्चित करें कि आपका ओएस बहुत ही कम स्वैप करता है । इसमें vm.swappinessसेटिंग द्वारा नियंत्रित किया जाता है /etc/sysctl.conf। उबंटू की डिफ़ॉल्ट सेटिंग है 60अगर मुझे सही ढंग से याद है जो कि अधिकांश स्थितियों के लिए बहुत अधिक है और इससे आपको स्वैप करना शुरू हो जाएगा, जबकि रैम अभी भी उपलब्ध है। यदि आप इस मूल्य को कम करते हैं, तो आप केवल आपात स्थितियों के लिए इसका उपयोग करते समय स्वैप की सुरक्षा रेखा को रखने में सक्षम होंगे। तो, फ़ाइल खोलें:

sudo nano /etc/sysctl.conf

और इस लाइन को इसमें जोड़ें:

vm.swappiness=10

यदि वह अभी भी बहुत अधिक है, तो 10 से 1. को बदल दें। अब, पुनः आरंभ करने के बाद, आप केवल तभी स्वैप करेंगे जब आवश्यक हो और आप बस इसे भूल सकते हैं।


मुझे स्वप्न बदलना बहुत पसंद है, और मैंने वर्षों में नहीं किया है। याद दिलाने के लिए शुक्रिया। सुदो उर्ध्व हल्दी!
डार एग्रीशियस

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

5
@ बाहर इंगित करने के लायक है कि, जाहिर है, वही सटीक बात होगी यदि आप स्वैप स्थान से बाहर भी भागते हैं।
ओ ० '।

11
यह वास्तव में सवाल का जवाब नहीं देता है। स्वैप को पूरी तरह से अक्षम करना 16GB या 32GB RAM वाले सिस्टम पर बहुत अधिक प्रभाव डाल सकता है। कुछ अतिरिक्त जीबी स्वैप स्मृति-खाने के अनुप्रयोगों के मामले में कोई अच्छा काम नहीं करेगा, जबकि स्वैप की एक बड़ी राशि (उदाहरण 20GB) बहुत सारे हार्डड्राइव / SSD स्थान लेगी। साथ ही 32GB रैम के साथ हाइबरनेटिंग मजेदार नहीं है
jmiserez

7
कुछ सेटअप के लिए, जैसे ही आप भौतिक रैम से बाहर निकलते हैं और स्वैप करना शुरू करते हैं, सिस्टम "चूसने कीचड़" शुरू होता है और अनुपयोगी हो जाता है। हां, सिद्धांत रूप में आप अपराधी को पकड़ सकते हैं और मार सकते हैं, लेकिन जब यूआई में फोकस बदलने में 20+ मिनट लगते हैं और यहां तक ​​कि एसएसएच के माध्यम से पासवर्ड प्रॉम्प्ट प्राप्त करने के लिए, ओओमिंग सबसे अच्छा विकल्प होता है (एक कठिन द्वारा पीछा किया जाता है) रिबूट, उसके बाद (समस्या को ठीक करके)।
BCS

46

स्वैप के संदर्भ में / etc / fstab में लाइन ढूंढें और टिप्पणी करें। मेरा इस तरह है:

UUID=6880a28d-a9dc-4bfb-ba47-0876b50e96b3 /               ext4    errors=remount-ro 0       1
UUID=7350e6f2-e3a7-4d80-9a95-8741c7db118f /home           ext4    defaults        0       2
UUID=E2E26AD1E26AAA0D /media/windows  ntfs    defaults,umask=007,gid=46 0       0

# Swap a usb extern (3.7 GB):
#/dev/sdb1 none swap sw 0 0

आप इस फ़ाइल को gedit के साथ संपादित कर सकते हैं। इसे पहले बैकअप लें, बस मामले में:

sudo cp /etc/fstab /etc/fstab_backup
gksu gedit /etc/fstab

बस उस पंक्ति की शुरुआत में # जोड़ें जहां स्वैप है, और कंप्यूटर को रिबूट करें।

या

/etc/fstabफ़ाइल में स्वैप प्रविष्टि पर टिप्पणी करने का कमांड-लाइन तरीका आज़माएं ,

sudo sed -i.bak '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

मुझे यह तब मिलता है जब मैं टाइप करता हूंgksu gedit /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> /host/ubuntu/disks/root.disk / ext4 loop,errors=remount-ro 0 1 /host/ubuntu/disks/swap.disk none swap loop,sw 0 0
एलेक्स ली

1
इसलिए, वह वही करें जो वह कह रहा है। पहली पंक्ति पर टिप्पणी करें जो "स्वैप" को संदर्भित करता है। : P
cHao

13

बस प्रविष्टि को हटा दें (या लाइन के सामने # का उपयोग करके टिप्पणी करें) fstab और रिबूट से। इसमें "स्वैप" शब्द के साथ लाइन देखें।

sudo nano /etc/fstab

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

1
मैंने अपनी पोस्ट संपादित की है।
मदालेकु

11

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

  1. अदला-बदली-ए
  2. संपादित करें / etc / fstab और यदि मौजूद है तो किसी भी स्वैप प्रविष्टियों पर टिप्पणी करें।
  3. रन: sudo systemctl मास्क देव-sdXX.swap (जहां XX स्वैप विभाजन है। यह सभी संभावित विभाजनों के लिए भी उपयोगी है ताकि यदि किसी अन्य ड्राइव पर स्वैप विभाजन हो तो यह माउंट नहीं होगा)

मित्रों अलविदा।


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