स्वैप स्पेस कैसे बढ़ाएं?


127

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


2
कृपया Gparted को खोलें, और जो भी आप यहाँ देखें उसका स्क्रीनशॉट पोस्ट करें।
एरोन हिल

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

जवाबों:


171

आप हमेशा स्वैप फाइल बना सकते हैं

अधिक स्वैप स्थान जोड़ने के लिए। यह (हर पहलू में) स्वैप विभाजन के समान नहीं है, लेकिन यह आसान और गतिशील होगा।

/media/fasthdd/swapfile.imgअपनी पसंद की किसी भी चीज़ में बदलाव करें, उदाहरण के लिए यह भी हो सकता है /swap.img/media/fasthdd/swapfile.imgकेवल उदाहरण फ़ाइल नाम है, यदि आप इस एक का उपयोग कर रहे हैं, तो निश्चित रूप से /media/fasthdd/आपकी नई स्वैप फ़ाइल के लिए पर्याप्त खाली स्थान के साथ निर्देशिका होनी चाहिए ।

आदेशों को चलाने के लिए किसी भी टर्मिनल एप्लिकेशन का उपयोग करें। सभी कमांड को रूट विशेषाधिकारों के साथ चलाया जाना चाहिए , ऐसा करने के लिए आप या तो sudoप्रत्येक कमांड की शुरुआत में जोड़ सकते हैं या कमांड चलाने sudo bashसे पहले चला सकते हैं।

1. खाली फाइल बनाएं:
इस फाइल में वर्चुअल मेमोरी कंटेंट होंगे, जिससे फाइल आपकी जरूरतों के लिए काफी बड़ी हो जाएगी। यह एक 1Gb फाइल बनाएगा जिसका अर्थ है + आपके सिस्टम के लिए 1Gb स्वैप स्पेस:

dd if=/dev/zero of=/media/fasthdd/swapfile.img bs=1024 count=1M

अगर आप 3Gb फाइल बनाना चाहते हैं तो काउंट वैल्यू को बदल दें count=3Mman ddअधिक जानकारी के लिए देखें ।

2. बेक स्वैप फाइल:
निम्नलिखित कमांड आपकी ताजा स्वैप फाइल के अंदर "स्वैप फाइलसिस्टम" बनाने जा रही है।

mkswap /media/fasthdd/swapfile.img

3. बूट पर लाओ:
यह सुनिश्चित करने के लिए कि कंप्यूटर को बूट करते समय आपका नया स्वैप स्थान सक्रिय है, आपको इसे फाइल सिस्टम कॉन्फ़िगरेशन फ़ाइल में जोड़ना चाहिए /etc/fstab। इसे फ़ाइल के अंत में जोड़ें, यह अनुशंसित है क्योंकि अन्य फाइल सिस्टम ( कम से कम एक जिसमें स्वैप फ़ाइल होती है ) को किसी भी फाइल तक पहुंचने से पहले रीड-राइट मोड में माउंट किया जाना चाहिए।

# Add this line to /etc/fstab
/media/fasthdd/swapfile.img swap swap sw 0 0

4. सक्रिय करें:
आप या तो अपने कंप्यूटर को रिबूट कर सकते हैं या निम्न कमांड के साथ हाथ से नई स्वैप फ़ाइल सक्रिय कर सकते हैं:

swapon /media/fasthdd/swapfile.img


अगर सब कुछ ठीक हो जाता है

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

cat /proc/swaps
  Filename                           Type       Size    Used    Priority
  /media/fasthdd/swapfile.img        file       8388604 2724    -1

grep 'Swap' /proc/meminfo
  SwapCached:         4772 kB
  SwapTotal:       8388604 kB
  SwapFree:        8355812 kB

5
/etc/fstabकमांड लाइन पर इसे आज़माने के लिए :sudo gedit /etc/fstab
बेन

इससे मुझे काफी मदद मिली, बहुत-बहुत धन्यवाद सर।
ब्रीज

नए बनाए गए स्वैपफाइल को कैसे निष्क्रिय करें?
ब्रीज

1
मिल गया इसकी अदला-बदली!
ब्रीज

2
"कैट / प्रोक / स्वैप" के बजाय स्थिति को देखने के लिए कमांड "स्वेपन-एस" का उपयोग करें। फिर "फ्री" कमांड भी स्वैप उपयोग की जानकारी देता है।
पॉल एम

40

स्वैप विभाजन के आकार को बढ़ाने के लिए GUI विधि

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

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

sudo apt-get update
sudo apt-get install gparted && sudo gparted

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

केस 1 - स्वैप विभाजन से पहले या बाद में मौजूद खाली स्थान

GParted विभाजन

ऊपर दिए गए स्क्रीनशॉट में, मेरे पास linux-swap से पहले 11.4 GB unallocated space था और swap पार्टीशन के बाद 12.8 GB था।

  • आकार बदलने के लिए, स्वैप विभाजन (/ dev / sda9 यहाँ) पर राइट क्लिक करें और Resize / Move विकल्प पर क्लिक करें। यह इस तरह दिखेगा:

    यहां छवि विवरण दर्ज करें

  • स्लाइडर तीर को बाएँ या दाएँ खींचकर फिर आकार बदलें / स्थानांतरित करें बटन पर क्लिक करें। आपके स्वैप विभाजन का आकार बदल दिया जाएगा।


केस 2 - विभाजन के बीच असंबद्ध स्थान है

यहां छवि विवरण दर्ज करें

ऊपर दिए गए स्क्रीनशॉट में, अनलॉकेटेड स्पेस जिसे हम स्वैप पार्टीशन में जोड़ना चाहते हैं dev/sda7और बीच में था /dev/sda8। उस असंबद्ध स्पेस को ऊपर ले जाने के लिए बस स्वैप्ट पार्टीशन से ऊपर ले जाएं, हमें नीचे दिए गए सरल चरणों का पालन करना होगा,

  • / Dev / sda8 विभाजन पर राइट-क्लिक करें और Resize / Move विकल्प पर क्लिक करें ।

    यहां छवि विवरण दर्ज करें

  • स्लाइडर को चरम बाईं ओर क्लिक करें और ले जाएं, ताकि /dev/sda8विभाजन के ठीक ऊपर वाला खाली स्थान नीचे आ जाए /dev/sda8। इसके बाद Resize / Move बटन पर क्लिक करें।

  • और अब अनअलोकेटेड स्पेस स्वैप विभाजन के ठीक ऊपर था जो केस 1 जैसा था । अब केस 1 का अनुसरण करें।


केस 3 - यदि विस्तारित विभाजन के बाहर असंबद्ध स्थान मौजूद था)

यहां छवि विवरण दर्ज करें

मेरे पास विस्तारित विभाजन के ठीक नीचे 18 जीबी का एक खाली स्थान था । इस स्थान को लिनक्स-स्वैप विभाजन में जोड़ें (जो विस्तारित विभाजन के अंदर मौजूद था), हमें नीचे दिए गए चरणों का पालन करना होगा,

  • विस्तारित विभाजन पर राइट-क्लिक करें और Resize / Move विकल्प चुनें, यह नीचे दिए गए स्क्रीनशॉट की तरह होगा

    यहां छवि विवरण दर्ज करें

  • तीर को दाईं ओर क्लिक करें और खींचें और Resize / Move पर क्लिक करें , ताकि 18 GB का अनलॉकेटेड स्पेस विस्तारित पार्टीशन के निचले भाग में आ जाए। मेरे पास 14.80 GB का अनलॉक्ड स्पेस पहले से ही सबसे नीचे मौजूद था और अब 18.34 GB इसके साथ विस्तारित विभाजन के तल पर (18.34 + 14.80 GB) की असंबद्ध जगह बनाने के लिए जोड़ती है।

  • अब स्वैप विभाजन के ठीक नीचे एक असंबद्ध स्थान था, यह केस 1 जैसा होगा , फिर केस 1 का पालन करें।

नोट: उपरोक्त कार्यों को आगे बढ़ाने से पहले अपने सभी महत्वपूर्ण डेटा का बैकअप लेना न भूलें।


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

2
स्वैप करने के लिए मत भूलना, स्वैप स्वैप पर राइट क्लिक करें
user3752281 17

29

fallocateयदि आप फ़ाइल को 0 से भरने की आवश्यकता के बिना, अपने स्वैप के लिए स्थान आरक्षित करना चाहते हैं, तो आप इसका उपयोग भी कर सकते हैं dd

से manपेज:

DESCRIPTION
   fallocate  is  used  to preallocate blocks to a file.  For filesystems which support the fallocate system call, this is done quickly by
   allocating blocks and marking them as uninitialized, requiring no IO to the data blocks.  This is much faster than creating a  file  by
   filling it with zeros.

यदि आपके पास पहले से swapपरिभाषित है, तो आप इसे हटा सकते हैं या इसे रख सकते हैं, और आपका * निक्स इसे प्रबंधित करेगा ( swaponप्राथमिकता को परिभाषित करके और भी बेहतर )। यह उपयोगी हो सकता है, यदि आप विभिन्न उपकरणों, ड्राइव (उनकी गति या अन्य कस्टम आवश्यकताओं के आधार पर, स्वैप देखें कि StackExchange पर एकाधिक स्वैप फ़ाइलों का उद्देश्य क्या है) के बीच अपनी अदला-बदली करना चाहते हैं ।

fallocateदूसरी स्वैप फ़ाइल जोड़ने के लिए सरल उपयोग

जाँच स्वैप स्थिति:

$ sudo swapon -s
Filename                Type        Size    Used    Priority
/swapfile               file        262140  246276  -1

4 जी स्वैप फाइल बनाएं

स्वैप फ़ाइल बनाने और सक्रिय करने का मानक तरीका।

$ size="4G" && file_swap=/swapfile_$size.img && sudo touch $file_swap && sudo fallocate -l $size /$file_swap && sudo mkswap /$file_swap && sudo swapon -p 20 /$file_swap

अपनी अदला-बदली स्थायी करें

अपनी /etc/fstabफ़ाइल में एक पंक्ति जोड़ें, ताकि स्वैप को अगले रिबूट पर आरंभीकृत किया जाएगा (हम यहां भी नए बनाए गए स्वैप स्थान की प्राथमिकता को अपडेट करते हैं और हम पुरानी स्वैप फ़ाइल की प्राथमिकता को अपडेट करते हैं)।

आपकी / etc / fstab फ़ाइल में, ध्यान दें कि प्रचलित स्वैप की प्राथमिकता अब 10 है।

/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

रिबूट के बाद स्वैप स्थिति की जाँच करें:

$ sudo swapon  -s
Filename       Type     Size        Used    Priority
/swapfile      file     262140      0       10
/swapfile_4G.img       file     4194300     0       20

स्वैप स्थान में से एक को निकालें (उदाहरण के लिए मूल 256Mb)

संपादित करें /etc/fstab

आप जिस स्वैप को हटाना चाहते हैं, उससे संबंधित लाइन को हटा दें।

उस स्वैप को हटा दें

स्वैप फ़ाइल को हटा दें और हटा दें।

sudo swapoff /mnt/swapfile && sudo rm /mnt/swapfile

संसाधन:


2
1-अप के लिए fallocate, ddयदि आपका fs इसका समर्थन करता है तो बहुत बेहतर है । उन वन-लाइनर्स को पढ़ना अभी भी मुश्किल लगता है, अगर उनका वास्तविक आदेशों को तोड़ा जाए, तो अध्ययन करना आसान हो सकता है?
संपो सरला

2
यह एकदम सही जवाब का उदाहरण है, समझने में बहुत सरल है, लागू करने के लिए बहुत सरल है। इसने ubuntu 18
Damián Rafael Lattenero

7

मेरे मामले में मेरे पास पहले से ही एक स्वैप फ़ाइल थी जो मुझे लगा कि 1GB है लेकिन जब मैंने इसे और अधिक करीब से देखा तो यह केवल 256 एमबी बड़ा था और जब मेरी रेल संपत्ति को प्री-कंपाइल करती है तो सर्वर मेमोरी से बाहर चला जाता है

Errno::ENOMEM: Cannot allocate memory - nodejs

मैंने यहाँ वर्णित के रूप में अपनी स्वैप फ़ाइल बनाई: https://stackoverflow.com/a/34885004/784318

अब एक खाली फाइल बनाने वाली लाइन /swapfileइस प्रकार है:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=256k

अब स्वैफाइल का आकार बदलने के लिए मुझे ये सरल उपाय करने होंगे:

# Reboot the system to be able to switch swapping off
sudo reboot

# Turn swap off
sudo swapoff -a

# Delete the `/swapfile`
rm -f /swapfile

# Recreate the swapfile but with double file size memory
sudo dd if=/dev/zero of=/swapfile bs=1024 count=512k

# Turn swap back on
sudo swapon -s

# Change the permission to non-world-readable
sudo chown root:root /swapfile 
sudo chmod 0600 /swapfile

# Use the swap file
sudo mkswap /swapfile
sudo swapon /swapfile

फ़ाइल बनाई गई थी (536870912/1024/1024 = 512 MB):

ls -lia /swapfile 
768 -rw------- 1 root root 536870912 Apr 27 07:54 /swapfile

free -mकमांड का उपयोग करते हुए मैं देख सकता था कि फाइल अब 512 एमबी जैसी है:


आपको सिंगल फाइल निकालने के लिए rm कमांड के साथ खतरनाक -r फ्लैग का उपयोग नहीं करना चाहिए। rm -f पर्याप्त से अधिक होना चाहिए।
संपो सारला

1
@SampoSarrala सिर के लिए धन्यवाद, मैंने स्क्रिप्ट को तदनुसार बदल दिया।
बेसी

@Besi धन्यवाद! यह वही था जो मुझे अपने Ubuntu 18.04 LTS सिस्टम पर स्वैप फ़ाइल के आकार को बढ़ाने की आवश्यकता थी। जैसा आपने लिखा था वैसा ही काम किया। बहुत बढ़िया मदद !!!
बी-रेडिकल

मुझे यह समाधान पसंद है क्योंकि यह कमांड-लाइन है, इसे पुन: विभाजन की आवश्यकता नहीं है, और यह बताता है कि अगर स्वैप स्वैप पहले से मौजूद है तो क्या करें।
cxrodgers

3

कैसे एक स्वैप फ़ाइल जोड़ने के लिए

  1. जीव .img फ़ाइल

    sudo dd if = / dev / zero of = / swap.img bs = 1M count = 1000

नोट !: बी एस = १ एम गिनती = १००० ==> १ जीबी

(bs * मेगाबाइट में गिनती = आकार)

अन्य उदाहरण:

sudo dd if = / dev / zero of = / swap.img bs = 10M count = 100

  1. प्रारूप .img फ़ाइल

    सूदो mkswap /swap.img

  2. स्वैप फ़ाइल सक्षम करें

    सुडो स्वपन /swap.img

  3. fstab में स्वैप फ़ाइल जोड़ें

इस लाइन को अपने fstab (/ etc / fstab) में जोड़ें

/swap.img   none            swap    sw              0       0

मैं आमतौर पर स्वैप पर एक लेबल सेट करता हूं, जैसे "mkswap -L SWAP2"।
पॉल एम

नोट: यह Sampo Sarria द्वारा स्वीकृत / सर्वाधिक उत्तोलित उत्तर के रूप में एक ही उत्तर है, लेकिन कम संदर्भ के साथ और स्वैप img के साथ / मीडिया / fasthdd के बजाय सीधे रूट में जोड़ा गया
स्टील

0

8GB करने के लिए स्वैप का आकार बदलें

# Turn swap off
# This moves stuff in swap to the main memory and might take several minutes
sudo swapoff -a

# Create an empty swapfile
# Note that "1G" is basically just the unit and count is an integer.
# Together, they define the size. In this case 8GB.
sudo dd if=/dev/zero of=/swapfile bs=1G count=8

sudo mkswap /swapfile  # Set up a Linux swap area
sudo swapon /swapfile  # Turn the swap on

अगर यह काम किया जाँच करें

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