Vraag Hoe om de swap ruimte te vergroten?


Ik heb standaard 250 MB swapruimte in Ubuntu en ik wil deze uitbreiden naar een groter formaat. Ik heb 800 MB nodig, wat volgens mij voldoende is om verschillende applicaties te openen zonder de huidige limiet van swap te moeten halen. Ik hoop dat iemand me kan helpen.


105
2017-08-21 20:20


oorsprong


Open Gparted en plaats een screenshot van wat je hier ziet. - Aaron Hill
Als uw swappartitie kan worden uitgebreid naar aangrenzende niet-toegewezen ruimte, gebruikt u gparted. Als dergelijke ruimte niet beschikbaar is, misschien omdat uw actieve (booted) partitie alle niet-swap-ruimte gebruikt, dan gparted staat niet toe dat u de grootte van de actieve partitie verkleint om niet-toegewezen ruimte te creëren. In dit geval kunt u Ubuntu opnieuw installeren om een ​​grotere swapruimte te creëren. - H2ONaCl


antwoorden:


U kunt altijd een wisselbestand maken

om meer swapruimte toe te voegen. Dit is niet hetzelfde (in elk aspect) als swappartitie, maar het zal gemakkelijk en dynamisch zijn.

Verandering /media/fasthdd/swapfile.img om wat je maar wilt, bijvoorbeeld kan het zijn /swap.img ook. /media/fasthdd/swapfile.img is gewoon voorbeeld bestandsnaam, als je deze gebruikt dan moet er natuurlijk een map zijn /media/fasthdd/ met voldoende vrije ruimte voor uw nieuwe wisselbestand.

Gebruik een van de terminaltoepassingen om opdrachten uit te voeren. Alle commando's moeten worden uitgevoerd met rootprivileges, om dit te doen kun je het toevoegen sudo naar het begin van elke opdracht of run sudo bash voordat u opdrachten uitvoert.

1. Maak een leeg bestand aan:
Dit bestand bevat de inhoud van het virtuele geheugen, dus maak het bestand groot genoeg voor uw behoeften. Deze maakt een 1Gb-bestand, wat betekent + 1Gb swap-ruimte voor je systeem:

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

Als u een 3Gb-bestand wilt maken, wijzigt u de telwaarde in count=3M. Zien man dd voor meer informatie.

2. Bak wisselbestand:
Volgend commando gaat "swap filesystem" binnen je verse swap-bestand maken.

mkswap /media/fasthdd/swapfile.img

3. Laat de boot opstarten:
Om ervoor te zorgen dat uw nieuwe swap-ruimte wordt geactiveerd tijdens het opstarten van de computer, moet u deze toevoegen aan het bestandssysteemconfiguratiebestand /etc/fstab. Voeg het toe aan het einde van het bestand, dit wordt aanbevolen omdat andere bestandssystemen (ten minste één die een wisselbestand bevat) moet worden gemonteerd in de lees-schrijfmodus voordat we toegang kunnen krijgen tot alle bestanden.

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

4. Activeer:
U kunt uw computer opnieuw opstarten of het nieuwe wisselbestand met de hand activeren met de volgende opdracht:

swapon /media/fasthdd/swapfile.img


Als alles goed gaat

u zou moeten zien dat er meer swapruimte beschikbaar is voor gebruik. U kunt de volgende opdrachten gebruiken om uw nieuwe swap te controleren en te bevestigen dat deze actief is:

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

140
2017-08-21 20:59



Aanpassen /etc/fstab probeer dit op de opdrachtregel: sudo gedit /etc/fstab - Ben
Dat heeft me enorm geholpen, heel erg bedankt mijnheer. - Breeze
hoe de nieuw gemaakte swap-bestand deactiveren? - Breeze
heb het zijn swap-off! - Breeze
Wat te doen als ik op deze locatie geen swapimage.img-bestand heb? (en nergens in mijn systeem)? - PaulD


GUI-methode voor het vergroten van de grootte van de swappartitie

Een andere manier om de swap-grootte te vergroten, is door de GParted partitie-editor. Kortom, u vergroot of verkleint de swappartitie, klikt er vervolgens met de rechtermuisknop op en kiest "Swapon".

Het is eenvoudiger om gparted-live-disk of een Ubuntu-live-disk op te starten (zodat het allemaal /dev/sda partities worden gedeactiveerd). Als je Ubuntu live-disk draait, dan moet je gparted installeren door de onderstaande commando's uit te voeren:

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

U moet alleen de grootte van de swappartitie kunnen vergroten als er een niet-toegewezen ruimte voor of na de swappartitie aanwezig is. Als er geen niet-toegewezen ruimte (de ruimte die we proberen toe te voegen met de swappartitie) zich onder of boven de swappartitie bevindt, dan moeten we de grootte van de partities wijzigen en die niet-toegewezen ruimte krijgen.

Geval 1 - niet-toegewezen ruimte aanwezig voor of na de swappartitie

GParted partitions

In de bovenstaande schermafbeelding had ik 11,4 GB niet-toegewezen ruimte vóór de linux-swap en 12,8 GB na de swappartitie.

  • Als u de grootte wilt wijzigen, klikt u met de rechtermuisknop op de swappartitie (/ dev / sda9 hier) en klikt u op de optie Grootte / verplaatsing wijzigen. Het ziet er als volgt uit:

    enter image description here

  • Sleep de schuifpijlen naar links of rechts en klik vervolgens op de knop Grootte wijzigen / Verplaatsen. Uw swappartitie wordt van grootte veranderd.


Geval 2 - niet-toegewezen ruimte tussen de partities

enter image description here

In de bovenstaande schermafbeelding was de niet-toegewezen ruimte die we willen toevoegen aan de swappartitie dev/sda7 en /dev/sda8. Om de niet-toegewezen ruimte van die naar net boven de swappartitie te verplaatsen, moeten we de eenvoudige stappen volgen die hieronder worden gegeven,

  • Klik met de rechtermuisknop op de partitie / dev / sda8 en klik op Resize / Move keuze.

    enter image description here

  • klik en verplaats de schuifregelaar helemaal naar links, zodat de niet-toegewezen ruimte die net boven de schuifbalk was /dev/sda8 partitie zal onderaan komen /dev/sda8. Klik vervolgens op de knop Resize / Move.

  • En nu was de niet-toegewezen ruimte net boven de swap-partitie die eruitzag Zaak 1. Nu Case 1 volgen.


Case 3 - als de niet-toegewezen ruimte buiten de Extended-partitie aanwezig was)

enter image description here

Ik had een niet-toegewezen ruimte van 18 GB net onder de uitgebreide partitieOm deze ruimte toe te voegen aan de linux-swap-partitie (die aanwezig was in de uitgebreide partitie), moeten we de onderstaande stappen volgen,

  • Klik met de rechtermuisknop op de uitgebreide partitie en selecteer Resize / Move optie, het zal lijken op het screenshot hieronder

    enter image description here

  • Klik en sleep de pijl helemaal naar rechts en klik op Resize / Move,zodat de niet-toegewezen ruimte van 18 GB komt aan de onderkant van de uitgebreide partitie. Ik had een 14.80 GB niet-toegewezen ruimte al aanwezig aan de onderkant en nu combineert de 18.34 GB met die om niet-toegewezen ruimte van (18.34 + 14.80 GB) te creëren aan de onderkant van de uitgebreide partitie.

  • Nu was er een niet-toegewezen ruimte net onder de swappartitie, zo zal het zijn Zaak 1, volg dan geval 1.

OPMERKING: Vergeet niet om een ​​back-up te maken van al uw belangrijke gegevens voordat u doorgaat met de bovenstaande bewerkingen.


30
2017-12-11 06:11



Geweldige gids voor GUI-tools, verdient ++ zoals het is. Misschien moet er echter een waarschuwing zijn over mogelijke risico's bij het bewerken van partities. Eenvoudige MBR-back-upgids of een link naar deze handleiding zou een geweldige aanvulling zijn, fouten kunnen onwaarschijnlijk zijn, maar de kosten kunnen hoog oplopen + nemen MBR-back-ups zal niet te veel tijd of ruimte verbruiken en kan besparen veel werk, ruimte en tijd wanneer correct gedaan. - Sampo Sarrala
Vergeet niet om te wisselen, klik met de rechtermuisknop op de swappartitie en een swapon - user3752281


Je kan ook gebruiken fallocate als u ruimte wilt reserveren voor uw swapbestand, zonder dat u het bestand met 0 through hoeft in te vullen dd.

van de MAN pagina:

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.

Als u al een swap gedefinieerd, kunt u het verwijderen of behouden en uw * nix zal het beheren (nog beter met het definiëren van een swapon prioriteit). Dit kan handig zijn, in het geval u uw swap tussen verschillende apparaten wilt spreiden, rijd (op basis van hun snelheid of andere aangepaste behoeften, zie Wat is het doel van meerdere swap-bestanden op StackExchange).

Eenvoudig fallocate gebruik voor het toevoegen van een tweede wisselbestand

Controleer swap situatie:

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

Maak een 4G-wisselbestand

Standaard manier om een ​​wisselbestand aan te maken en te activeren.

$ 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

Maak je swap permanent

Voeg een regel toe in uw /etc/fstab bestand zodat de swap wordt geïnitialiseerd bij de volgende herstart (we updaten hier ook de prioriteit van de nieuw gemaakte swap-ruimte en we werken de prioriteit bij van het oude wisselbestand

# in your /ets/fstab file
/swapfile    none    swap    sw,pri=10      0       0
/swapfile_4G.img     none    swap    sw,pri=20      0       0

Controleer swap situatie na reboot:

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

Verwijder een van de swapspace (bijvoorbeeld de originele 256 MB)

Bewerk /etc/fstab

Verwijder de regel gerelateerd aan de swap die u wilt verwijderen

Verwijder die swap

Verwijder en verwijder het wisselbestand.

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

Middelen:


19
2017-10-09 13:24



1-up voor fallocate, veel beter dan dd als je fs het ondersteunt. Die oneliners voelen nog steeds moeilijk om te lezen, zou gemakkelijker te bestuderen zijn als die zouden worden opgesplitst in werkelijke commando's? - Sampo Sarrala


In mijn geval had ik al een swap-bestand waarvan ik dacht dat het 1 GB was, maar toen ik er beter naar keek, was het slechts 256 MB groot en bij het pre-compileren van mijn rails-assets had de server geen geheugen meer.

Errno::ENOMEM: Cannot allocate memory - nodejs

Ik heb mijn wisselbestand gemaakt zoals hier beschreven: https://stackoverflow.com/a/34885004/784318

Nu is de regel die een leeg bestand maakt genaamd /swapfile is als volgt:

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

Om het formaat van het swapbestand te wijzigen, moest ik deze eenvoudige stappen uitvoeren:

# 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

Het bestand is gemaakt (536870912/1024/1024 = 512 MB):

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

Gebruik makend van free -m commando Ik kon zien dat het bestand nu 512 MB is zoals verwacht:


3
2018-04-27 12:03



Gebruik geen gevaarlijke -r-vlag met rm-opdracht om een ​​enkel bestand te verwijderen. rm -f zou meer dan genoeg moeten zijn. - Sampo Sarrala
@SampoSarrala Bedankt voor de heads-up, ik heb het script dienovereenkomstig gewijzigd. - Besi


hoe een wisselbestand toe te voegen

  1. creat .img-bestand

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

opmerking !: bs = 1M count = 1000 ==> 1GB

(bs * count = grootte in megabytes)

ander voorbeeld:

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

  1. format .img-bestand

    sudo mkswap /swap.img

  2. schakel wisselbestand in

    sudo swapon /swap.img

  3. voeg swap-bestand toe aan fstab

voeg deze regel toe aan je fstab (/ etc / fstab)

/swap.img   none            swap    sw              0       0

2
2017-10-03 11:13



Ik stel meestal een label in op ruilen, bijvoorbeeld "mkswap -L SWAP2". - Paul M