În cazul în care computerul are nevoie pentru a rula un program care este mai mare decât dimensiunea RAM fizică, sistemele de operare moderne au recurs la tehnologia de pompare sau de swap. În acest caz, blocurile de memorie sunt stocate temporar pe hard disk, iar cantitatea de RAM eliberată este utilizată pentru a procesa alte informații. Acest articol descrie câteva tehnici care vă pot ajuta să gestionați mai bine schimbarea pe sistemele Linux și pentru a obține cele mai bune performanțe subsistemul de swap.
Linux împarte memoria disponibilă de acces fizic (RAM) disponibilă în blocuri numite pagini. Schimbarea este procesul prin care o pagină de memorie este copiată într-o locație pregătită de pe hard disk, numită spațiu swap, pentru a elibera această pagină de memorie pentru informații noi. Cantitatea de RAM fizic și de spațiu de paginare se numește cantitatea de memorie virtuală disponibilă.
Pagingul este necesar din două motive. Mai întâi, când sistemul are nevoie de mai multă memorie decât este disponibil fizic, kernelul transferă cele mai puțin utilizate pagini din memorie pe disc și oferă memoria liberă aplicației (procesului) care are nevoie imediat. În al doilea rând, un număr semnificativ de pagini de memorie sunt utilizate de aplicații numai în timpul descărcării și nu mai sunt necesare după finalizarea procesului de inițializare. Sistemul poate pompa aceste pagini pe disc, eliberând astfel memoria pentru alte aplicații sau chiar pentru o memorie cache a discului.
Cu toate acestea, schimbarea are o parte inversă. Comparativ cu memoria, discul este foarte lent. Viteza memoriei este măsurată în nanosecunde, în timp ce viteza de disc în milisecunde, se pare că accesul la disc poate fi de zeci de mii de ori mai lent decât accesarea memoriei fizice. Cu cât are loc mai multă paginare, cu atât sistemul funcționează mai lent. Uneori interschimbare excesivă duce la alunecare atunci când pagina este evacuat, apoi imediat injectat înapoi, și apoi pompat din nou și așa mai departe. În această situație, sistemul luptă pentru o memorie liberă, "urmărind" aplicația la fața locului. În această situație, numai adăugarea de memorii RAM suplimentare vă poate ajuta.
În Linux, spațiul de paginare poate fi de două tipuri: o partiție swap și un fișier swap.
Partiția swap este o partiție independentă pe hard disk utilizată exclusiv pentru schimbare, nu există alte fișiere. Fișierul de paginare este un fișier de tip special în interiorul sistemului de fișiere, printre alte fișiere de toate celelalte tipuri. Pentru a afla ce tip de spațiu de swap aveți, tastați următoarele la un prompt de comandă:
În schimb veți primi ceva de genul:
Fiecare linie se referă la un spațiu de paginare separat care este disponibil în sistem. În acest caz, linia este doar una. Câmpul "Type" spune că avem o partiție, nu un fișier. Câmpul "Nume fișier" raportează că această partiție se află pe unitatea sda5. Câmpul "Dimensiune" arată dimensiunea partiției în kilobyte. Câmpul "Utilizat" indică numărul de kilobyte de spațiu de paginare utilizat (în acest caz, zero). "Prioritate" (Prioritate) raportează care dintre spațiile de paginare pe care Linux le folosește mai întâi. subsistem de swap în Linux are o proprietate remarcabilă: dacă montați aceeași prioritate două (sau mai multe) spațiile de swap (de preferință, pe diferite dispozitive), Linux le va folosi pentru a schimba viraje, ceea ce va crește în mod semnificativ performanța swap.
Schimbați spațiul
Pentru a adăuga o partiție swap suplimentară în sistemul dvs., trebuie mai întâi să o pregătiți. Pasul unu - asigurați-vă că partiția este marcată ca partiție swap. Pasul doi - creați un sistem de fișiere special pe acesta - swap sistemul de fișiere. Pentru a vă asigura că partiția este marcată ca swap, cu privilegii root (superuser), tastați:
Înlocuiți / dev / hdb cu dispozitivul pe care doriți să îl testați. Ca răspuns, primiți ceva de genul:
Dacă partiția nu este marcată ca swap Linux, atunci va trebui să o modificați folosind programul fdisk, utilizând opțiunea 't'. Fii extrem de atent când lucrați cu pereți despărțitori, în cazul în care nu doriți să ștergeți din greșeală o partiție importantă sau reformata partiția de sistem pentru partiția de swap. Toate informațiile de pe partiția de swap vor fi pierdute, deci măsoară-o de șapte ori, taie-o o dată. De asemenea, ține cont de faptul că Solaris marchează compartimentarea cu același identificator ca Linux - partiție swap nostru (Linux swap), astfel încât deteriorarea accidentală poosteregsya partiție Solaris (dacă le aveți). Atunci când o partiție este marcată ca swap, trebuie să o formatați cu comanda mkswap (make swap), din nou, ca root:
Dacă nu există mesaje de eroare, partiția dvs. este formatată și gata de plecare. Pentru ao activa imediat, tastați:
Puteți verifica dacă partiția este utilizată executând comanda swapon -s. Pentru a conecta automat noua partiție (montate) atunci când computerul pornește, trebuie să editați fișierul / etc / fstab, care conține o listă de sisteme de fișiere care sunt montate (montate) la momentul încărcării. Formatul fiecărei linii este:
Deoarece spațiul de paginare este un tip special de sistem de fișiere, mulți dintre acești parametri nu vor fi necesari. Pentru partiția swap, adăugați o linie
/ dev / hdb1 niciun swap sw 0 0
Aici / dev / hdb1 este partiția swap în sine, nu are un punct de montare special, deci nu scriem nici unul. Tipul său (tip) este swap, notat de opțiunea sw. Ultimii doi parametri nu sunt utilizați, deci există zerouri.
Puteți verifica fără a reporni computerul pentru a vedea dacă noua partiție swap se va conecta automat. Pentru aceasta, dezactivați mai întâi spațiul de swap cu comanda swapoff -a. apoi înapoi conectăm toate spațiile de paginare listate în / etc / fstab cu comanda swapon -a. apoi verificați dacă este conectat, utilizând comanda swapon -s.
Schimbați fișierul
Pe lângă partițiile swap, Linux suportă și fișiere swap care pot fi create, pregătite și montate într-un mod similar celui descris mai sus. Avantajul fișierelor swap este că nu este nevoie să căutați o partiție gratuită sau să creați una nouă pentru a mări spațiul de paginare.
Pentru a crea un fișier de paginare, utilizați comanda dd. care "pot" crea fișiere goale. Pentru a crea un fișier de 1 GB, tastați:
dd dacă = / dev / zero din = / swapfile bs = 1024 count = 1048576
Aici: / fișier de tip swap - numele fișierului de swap, iar numărul 1048576 - este dimensiunea fișierului în kilobiți (adică 1GB) pregătește fișierul de swap folosind comanda mkswap, precum și tratate secțiunea, dar de data aceasta numele fișierului:
În mod similar, îl montează cu comanda swapon:
Linia din fișierul / etc / fstab pentru fișierul swap arată astfel:
Ce dimensiune ar trebui să fie spațiul de swap?
În principiu, este posibil să se utilizeze deloc sistemul Linux fără a se schimba, iar sistemul va funcționa bine dacă are o memorie mare. Dar, dacă, la un moment dat, această memorie nu este suficientă, atunci sistemul așteaptă colapsul - pur și simplu nu va rămâne o șansă. Deci, vă sfătuiesc să aveți spațiu de schimb, mai ales în zilele noastre, când spațiul de pe hard disk este relativ ieftin.
Întrebarea cheie este cât de mult? Versiunile vechi ale sistemelor de operare asemănătoare Unix (cum ar fi Sun OS și Ultrix) au recomandat un spațiu de paginare de două sau trei ori mai mare decât dimensiunea memoriei RAM. Dezvoltarea modernă (cum ar fi Linux) nu necesită atât de mult, dar poate fi folosită dacă este dată. Regula este: 1) Alocați swap egală cu de două ori cantitatea de memorie RAM, aceasta va permite să ruleze simultan o mulțime de aplicații (mulți dintre ei, fiind inactiv, poate fi ușor pompat pe disc, eliberarea de memorie pentru activă) pentru desktop; 2) serverul alocă un spațiu de paginare este mai mică (aproximativ jumătate din dimensiunea RAM), astfel încât să ofere o oportunitate, dacă este necesar de swap, dar ai grija utilizarea spațiului de swap, și de a spori de memorie (RAM), dacă este necesar; 3) pentru calculatoare mai vechi, cu o capacitate de memorie mica (spune doar 128MB), care produc la fel de mult spațiu pentru swap ca tine poate, până la 1GB.
Kernelul Linux 2.6 a adăugat un nou parametru numit swappiness, care permite administratorului să controleze modul în care Linux gestionează spațiul de swap. Acesta este un număr de la 0 la 100. În general, cu cât este mai mare numărul, mai multe pagini sunt pompate afară din memoria principală pe disc, iar cea mai mică valoare swappiness, cu atât mai mare numărul de cereri rămân în memorie, chiar dacă acestea sunt inactive. Dezvoltator Kernel Andrew Morton susține că exponatele de pe desktop-urile lor swappiness la cel mai înalt nivel - 100, spune acest lucru:“Eu cred că nu ar trebui să restricționeze kernel-ul în eforturile sale de a pompa nedorită nu doriți sute de megabytes de spațiu de stocare ocupat de aplicații umflat. , fără a fi utilizate în mașină. Desfaceți-le pe disc și utilizați memoria pentru ceva util. " Ideea de Morton are un dezavantaj: în cazul în care memoria este eliberată prea repede, timpul de răspuns cererii va crește, deoarece aplicația este invocată, sistemul va trebui să-l încărcați mai întâi înapoi în memorie, care creează un sentiment de tembelism.
Swappiness-ul implicit este 60. Puteți schimba temporar (până la repornirea următoare) cu comanda ca root:
echo 50> proc / sys / vm / swappiness
Dacă doriți să o modificați permanent, trebuie să modificați parametrul vm.swappiness în fișierul /etc/sysctl.conf
concluzie
Gestionarea spațiului de paginare este un aspect important al administrării sistemului. Schimbarea bine planificată și folosită în mod corect oferă multe avantaje. Nu vă fie frică să experimentați și să monitorizați constant sistemul dvs. pentru a vă asigura că ați obținut exact rezultatul la care ați dorit.