BLACKBOXCentru de ajutor

Adăugarea memoriei swap

Cum creați un fișier swap pe un server cu memorie puțină, cum îl reglați și când este mai bine să faceți upgrade.

generalActualizat 2026-10-09~8 min de citit
Pe această pagină

Swap-ul este un spațiu pe disc pe care Linux îl folosește ca memorie de rezervă atunci când RAM-ul se umple. Ghidul arată cum creați un fișier swap, cum îl reglați și cum îl eliminați. Toate comenzile se rulează pe server, într-o sesiune SSH ca root (Conectarea la server prin SSH (Windows, macOS, Linux)). Câtă memorie RAM are planul dvs. vedeți în panoul app.blackbox.md: pe cardul serverului din „Serverele mele”, la „Configurație”.

Disponibil pentru: titularul serverului, cu acces SSH ca root. Comenzile sunt aceleași pe toate sistemele Linux disponibile la comandă: Ubuntu, Debian, AlmaLinux și CentOS Stream. Pe AlmaLinux și CentOS Stream se adaugă un singur pas, marcat în text.

Când ajută swap-ul

Swap-ul vă ajută dacă:

  • serverul are 1–2 GB RAM;
  • memoria se umple doar din când în când, de exemplu la un vârf de trafic sau la o sarcină programată;
  • instalați sau compilați pachete (actualizări de sistem, composer, npm), care cer multă memorie pentru scurt timp.

Fără swap, când memoria se termină, nucleul Linux oprește forțat un proces (OOM killer), de obicei pe cel mai mare: baza de date sau serverul web. Cu swap, serverul încetinește, dar procesele continuă să ruleze, cât timp nu se umple și swap-ul.

Plan RAM Disc Swap recomandat
Basic XS 1 GB 20 GB 1 GB
Standard S 2 GB 20 GB 1 GB
CPU S 2 GB 30 GB 1 GB
Basic S 2 GB 50 GB 2 GB

Pe planurile cu 4 GB RAM sau mai mult, swap-ul de regulă nu este necesar. Un fișier de 1 GB poate rămâne ca rezervă pentru vârfuri rare.

Important Swap-ul nu înlocuiește RAM-ul: discul este de multe ori mai lent decât memoria. Dacă serverul folosește swap-ul tot timpul, are nevoie de un plan cu mai mult RAM. Semnele le găsiți mai jos, în secțiunea „Când aveți nevoie de un upgrade”.

Verificați memoria și swap-ul existent

free -h
swapon --show

Exemplu pe un server fără swap:

               total        used        free      shared  buff/cache   available
Mem:           1.9Gi       1.2Gi       118Mi        12Mi       640Mi       560Mi
Swap:             0B          0B          0B
  • Dacă rândul Swap: arată 0B, iar swapon --show nu afișează nimic, serverul nu are swap. BLACKBOX nu adaugă swap la instalarea serverului, așa că pe un server nou situația este de regulă aceasta.
  • Coloana available arată câtă memorie mai pot folosi aplicațiile.
  • La Mem:, total este puțin mai mic decât RAM-ul planului: o parte este rezervată de sistem.

Dacă swapon --show afișează deja un fișier sau o partiție, nu creați încă unul. Ca să schimbați mărimea swap-ului existent, vedeți întrebările frecvente de la final.

Verificați și spațiul liber pe disc. În coloana Avail trebuie să rămână mult mai mult decât mărimea swap-ului pe care îl creați:

df -h /

Creați fișierul swap

Comenzile creează fișierul /swapfile de 2 GB. Pentru 1 GB, scrieți 1G în loc de 2G.

  1. Rezervați spațiul pe disc:

    fallocate -l 2G /swapfile
  2. Lăsați acces la fișier doar pentru root:

    chmod 600 /swapfile
  3. Pregătiți fișierul ca swap:

    mkswap /swapfile
  4. Doar pe AlmaLinux și CentOS Stream, unde SELinux este activ, aplicați eticheta SELinux prevăzută pentru /swapfile:

    restorecon -v /swapfile
  5. Activați swap-ul:

    swapon /swapfile
  6. Verificați cu swapon --show. Rezultatul arată astfel, iar în free -h rândul Swap: nu mai este 0B:

    NAME      TYPE SIZE USED PRIO
    /swapfile file   2G   0B   -2

Swap-ul rămâne activ până la următoarea repornire. Ca să se activeze singur la fiecare pornire, adăugați-l în /etc/fstab (secțiunea următoare).

Dacă fallocate nu funcționează

Dacă fallocate afișează Operation not supported sau swapon refuză fișierul (it appears to have holes sau Invalid argument), creați fișierul cu dd. Durează mai mult, dar dd scrie fișierul complet pe disc și funcționează și acolo unde fallocate nu merge. count este mărimea în MB: 2048 pentru 2 GB, 1024 pentru 1 GB.

rm -f /swapfile
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

Apoi continuați cu pașii 2–6 de mai sus.

Activați swap-ul la fiecare pornire

  1. Faceți o copie a fișierului /etc/fstab:

    cp /etc/fstab /etc/fstab.bak
  2. Verificați că nu există deja o linie pentru /swapfile. Comanda nu trebuie să afișeze nimic:

    grep swapfile /etc/fstab
  3. Adăugați linia la sfârșitul fișierului:

    echo '/swapfile none swap sw 0 0' >> /etc/fstab
  4. Reîncărcați configurația systemd:

    systemctl daemon-reload
  5. Verificați linia fără să reporniți: dezactivați swap-ul și activați-l din nou din /etc/fstab. Dacă /swapfile apare în rezultat, linia este corectă.

    swapoff /swapfile
    swapon -a
    swapon --show

Dacă ați greșit ceva în /etc/fstab, restaurați copia înainte de orice repornire:

cp /etc/fstab.bak /etc/fstab

Atenție La pasul 3 scrieți două semne >>. Cu un singur >, comanda înlocuiește tot conținutul /etc/fstab, iar serverul poate să nu mai pornească corect. Clienții nu au consolă web, deci nu ați putea repara fișierul după repornire. Dacă pierdeți accesul, scrieți-ne: Cum contactați suportul BLACKBOX.

Reglați swappiness

Parametrul vm.swappiness arată cât de ușor mută nucleul datele din RAM în swap. Valoarea implicită este de regulă 60. Cu valoarea 10, nucleul păstrează aplicațiile în RAM cât mai mult și mută date în swap mai ales când memoria este aproape plină.

  1. Vedeți valoarea actuală:

    cat /proc/sys/vm/swappiness
  2. Setați valoarea 10 imediat:

    sysctl vm.swappiness=10
  3. Ca setarea să rămână după repornire, scrieți-o într-un fișier nou din /etc/sysctl.d/. Aici un singur > este corect, pentru că fișierul este nou:

    echo 'vm.swappiness=10' > /etc/sysctl.d/99-swappiness.conf
  4. Verificați fișierul. Rezultatul trebuie să fie vm.swappiness = 10:

    sysctl -p /etc/sysctl.d/99-swappiness.conf

Când aveți nevoie de un upgrade

Swap-ul ajută la vârfuri rare. Dacă memoria lipsește tot timpul, soluția este mai mult RAM. Semnele sunt:

  • în free -h, used la rândul Swap: crește și rămâne mare, iar available la Mem: este aproape de zero;

  • serverul răspunde greu, deși procesorul nu este încărcat;

  • în rezultatul comenzii de mai jos, coloanele si și so (date citite din swap și scrise în swap, pe secundă) sunt mai mari decât 0 la aproape fiecare măsurare:

    vmstat 1 5
  • jurnalul nucleului arată procese oprite din lipsă de memorie (comanda arată mesajele de la ultima pornire):

    journalctl -k | grep -i "out of memory"

Ce faceți:

  1. Aflați ce proces consumă memoria și dacă îl puteți regla: Diagnosticarea încărcării serverului (CPU, RAM, disc, rețea).
  2. Dacă aplicația are nevoie de mai multă memorie, treceți pe un plan mai mare din aceeași familie, cu butonul „Upgrade” de pe cardul serverului: Upgrade server: trecerea la un plan mai mare.
Plan actual Următorul plan din familie RAM Disc
Basic XS Basic S 1 → 2 GB 20 → 50 GB
Basic S Basic M 2 → 4 GB 50 → 100 GB
Standard S Standard M 2 → 4 GB 20 → 40 GB
CPU S CPU M 2 → 4 GB rămâne 30 GB

Prețurile tuturor planurilor sunt în Planurile VPS: cum alegeți. Fișierul swap rămâne pe server după upgrade: îl puteți păstra ca rezervă sau îl puteți elimina.

Dacă serverul are serviciul suplimentar Monitoring, graficul „Utilizare RAM (%)” din blocul „Tendințe” al paginii „Monitorizare” arată consumul de memorie în timp. Graficul nu include swap-ul: pe acesta îl verificați pe server cu free -h. Detalii: Pagina „Monitorizare”.

Swap-ul și spațiul pe disc

  • Fișierul swap ocupă pe disc toată mărimea lui, chiar dacă nu este folosit: 2 GB de swap înseamnă 2 GB mai puțin pentru date.
  • Pe discurile de 20–30 GB (Basic XS, Standard S și familia CPU) nu depășiți 1 GB. La familiile CPU (30 GB) și High-Frequency Compute (50 GB), discul rămâne același și după upgrade.
  • Excludeți /swapfile din copiile de rezervă: conținutul lui nu mai are valoare după repornire.
  • Dacă discul se umple, micșorați sau eliminați swap-ul și urmați Discul serverului este plin.

Eliminați swap-ul

  1. Verificați memoria. available la Mem: trebuie să fie mai mare decât used la Swap:, altfel datele din swap nu au unde să fie mutate:

    free -h
  2. Dezactivați swap-ul. Dacă swap-ul conține multe date, comanda poate dura câteva minute:

    swapoff /swapfile
  3. Ștergeți linia din /etc/fstab. Comanda păstrează o copie a fișierului în /etc/fstab.bak:

    sed -i.bak '/^\/swapfile /d' /etc/fstab
  4. Verificați că linia a dispărut (prima comandă nu trebuie să afișeze nimic) și reîncărcați configurația:

    grep swapfile /etc/fstab
    systemctl daemon-reload
  5. Ștergeți fișierul:

    rm /swapfile
  6. Dacă ați setat swappiness, ștergeți și fișierul acestuia. Valoarea implicită revine la următoarea repornire:

    rm /etc/sysctl.d/99-swappiness.conf

Mesaje de eroare frecvente

Mesaj Ce înseamnă Ce faceți
fallocate: fallocate failed: Operation not supported Sistemul de fișiere nu acceptă fallocate. Creați fișierul cu dd.
swapon: /swapfile: skipping - it appears to have holes. sau swapon: /swapfile: swapon failed: Invalid argument Fișierul nu este scris complet pe disc sau sistemul de fișiere nu acceptă un fișier creat cu fallocate. Ștergeți-l și creați-l cu dd.
swapon: /swapfile: insecure permissions 0644, 0600 suggested. Fișierul poate fi citit și de alți utilizatori. Rulați chmod 600 /swapfile.
swapon: /swapfile: swapon failed: Device or resource busy Swap-ul este deja activ. Verificați cu swapon --show. Nu mai trebuie făcut nimic.
No space left on device (la fallocate sau dd) Pe disc nu este destul spațiu liber. Alegeți o mărime mai mică sau eliberați spațiu.
swapoff: /swapfile: swapoff failed: Cannot allocate memory RAM-ul liber nu ajunge pentru datele din swap. Opriți temporar aplicațiile mari și reîncercați. Altfel, ștergeți linia din /etc/fstab, reporniți serverul și apoi ștergeți fișierul.

Întrebări frecvente

Ce mărime de swap să aleg? 1 GB pe discurile de 20–30 GB și 2 GB pe celelalte servere cu 1–2 GB RAM. Mai mult swap rareori ajută: dacă serverul are nevoie de mai multă memorie, alegeți un plan cu mai mult RAM.

Cum schimb mărimea swap-ului? Dezactivați swap-ul, ștergeți fișierul și creați-l din nou cu noua mărime (în exemplu, 1 GB). Pe AlmaLinux și CentOS Stream rulați și restorecon -v /swapfile înainte de swapon. Linia din /etc/fstab rămâne aceeași.

swapoff /swapfile
rm /swapfile
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

Swap-ul încetinește serverul? Nu, cât timp este folosit rar. Încetinirea apare când serverul mută date în swap tot timpul. Atunci aveți nevoie de mai mult RAM, nu de mai mult swap.

N-ați găsit răspunsul?Scrieți-ne și echipa de suport vă răspunde. support@blackbox.md
Deschideți un tichet