Provided by: manpages-ro_4.27.0-1_all bug

NUME

       /proc/sys/vm/ - subsistemul de memorie virtuală

DESCRIERE

       /proc/sys/vm/
              Acest  director  conține  fișiere pentru ajustarea gestionării memoriei, tampon(buffer) și zona de
              prestocare(cache).

       /proc/sys/vm/admin_reserve_kbytes (începând cu Linux 3.10)
              Acest fișier definește cantitatea de memorie liberă (în Kio) din sistem care ar  trebui  rezervată
              pentru utilizatorii cu capacitatea CAP_SYS_ADMIN.

              Valoarea  implicită  din  acest  fișier este minimul de [3% din paginile libere, 8Mio] exprimat în
              Kio. Valoarea implicită este menită să ofere suficient pentru ca superutilizatorul să se conecteze
              și să oprească un proces, dacă este necesar, în modul implicit  „guess”  de  alocare  în  plus  de
              memorie („overcommit”, adică 0 în /proc/sys/vm/overcommit_memory).

              Sistemele  care rulează în modul „overcommit never” (adică 2 în /proc/sys/vm/overcommit_memory) ar
              trebui să crească valoarea din acest fișier pentru a ține seama de dimensiunea completă a memoriei
              virtuale a programelor utilizate pentru recuperare (de exemplu, login(1) ssh(1) și top(1)) În  caz
              contrar,  este  posibil ca superutilizatorul să nu se poată conecta pentru a recupera sistemul. De
              exemplu, pe x86-64, o valoare adecvată este 131072 (128Mio rezervat).

              Modificarea valorii din acest fișier intră în  vigoare  ori  de  câte  ori  o  aplicație  solicită
              memorie.

       /proc/sys/vm/compact_memory (începând cu Linux 2.6.35)
              Atunci  când  se scrie 1 în acest fișier, toate zonele sunt compactate astfel încât memoria liberă
              să fie disponibilă în blocuri contigue, acolo unde este posibil. Efectul acestei acțiuni poate  fi
              observat examinând /proc/buddyinfo.

              Prezenta doar daca nucleul a fost configurat cu opțiunea CONFIG_COMPACTION activată.

       /proc/sys/vm/drop_caches (începând cu Linux 2.6.16)
              Scrierea  în  acest  fișier  determină  nucleul  să  elimine din memorie cache-urile, intrările de
              director și nodurile-i curate, făcând ca memoria respectivă să devină liberă. Acest lucru poate fi
              util  pentru  testarea  gestionării  memoriei  și  pentru  efectuarea  de  teste  de   performanță
              reproductibile  pentru  sistemul  de  fișiere. Deoarece scrierea în acest fișier duce la pierderea
              beneficiilor memorării în cache, aceasta poate degrada performanța generală a sistemului.

              Pentru a elibera memoria cache de pagini, utilizați:

                  echo 1 > /proc/sys/vm/drop_caches

              Pentru a elibera intrările de director și nodurile-i, utilizați:

                  echo 2 > /proc/sys/vm/drop_caches

              Pentru a elibera memoria cache de pagini, intrările de director și nodurile-i, utilizați:

                  echo 3 > /proc/sys/vm/drop_caches

              Deoarece scrierea în acest fișier  este  o  operațiune  nedistructivă,  iar  obiectele  modificate
              (murdare) nu pot fi eliberate, utilizatorul ar trebui să execute mai întâi sync(1).

       /proc/sys/vm/sysctl_hugetlb_shm_group (începând cu Linux 2.6.7)
              Acest  fișier inscriptibil conține un ID de grup care are permisiunea de a aloca memorie utilizând
              pagini imense. Dacă un proces are un ID de grup al sistemului de fișiere  sau  orice  ID  de  grup
              suplimentar  care corespunde acestui ID de grup, atunci acesta poate face alocări de pagini imense
              fără a deține capacitatea CAP_IPC_LOCK; consultați memfd_create(2), mmap(2) și shmget(2).

       /proc/sys/vm/legacy_va_layout (începând cu Linux 2.6.9)
              Dacă nu este zero, aceasta dezactivează noua structură de  alocare  a  memoriei  pe  32  de  biți;
              nucleul va utiliza structura tradițională (2.4) pentru toate procesele.

       /proc/sys/vm/memory_failure_early_kill (începând cu Linux 2.6.32)
              Controlează  modul de oprire a proceselor atunci când o eroare de memorie necorectată (de obicei o
              eroare de 2 biți într-un modul de memorie) care nu poate fi gestionată de nucleu este detectată în
              fundal de hardware. În unele cazuri (cum ar fi pagina care are încă o  copie  valabilă  pe  disc),
              nucleul  va  gestiona  defecțiunea în mod transparent, fără a afecta nicio aplicație. Dar, dacă nu
              există nicio altă copie  actualizată  a  datelor,  acesta  va  opri  procesele  pentru  a  preveni
              propagarea oricărei corupții a datelor.

              Fișierul are una dintre următoarele valori:

              1      Omoară  toate  procesele  care  au  asociată pagina coruptă și care nu poate fi reîncărcată
                     imediat ce este detectată corupția. Rețineți că acest lucru nu este acceptat pentru  câteva
                     tipuri  de  pagini,  cum  ar  fi  datele alocate intern nucleului sau cache-ul de swap, dar
                     funcționează pentru majoritatea paginilor de utilizator.

              0      Anulează asocierea paginii corupte cu toate procesele (cu care era asociată) și  omoară  un
                     proces numai dacă acesta încearcă să acceseze pagina.

              Omorârea este efectuată utilizând un semnal SIGBUS cu si_code definit la BUS_MCEERR_AO.  Procesele
              pot gestiona acest lucru dacă doresc; consultați sigaction(2) pentru mai multe detalii.

              Această  caracteristică  este  activă  numai  pe  arhitecturi/platforme  cu  gestionare avansată a
              verificării mașinii și depinde de capacitățile hardware.

              Aplicațiile pot schimba individual configurarea  memory_failure_early_kill  cu  operația  prctl(2)
              PR_MCE_KILL.

              Prezenta doar daca nucleul a fost configurat cu opțiunea CONFIG_MEMORY_FAILURE activată.

       /proc/sys/vm/memory_failure_recovery (începând cu Linux 2.6.32)
              Activează recuperarea în caz de eroare a memoriei (atunci când este acceptată de platformă).

              1      Încearcă recuperarea.

              0      Declanșează întotdeauna o panică a nucleului în cazul unei erori de memorie.

              Prezenta doar daca nucleul a fost configurat cu opțiunea CONFIG_MEMORY_FAILURE activată.

       /proc/sys/vm/oom_dump_tasks (începând cu Linux 2.6.25)
              Activează  producerea  unei imagini a sarcinilor la nivelul întregului sistem (cu excepția firelor
              nucleului)  atunci  când  nucleul  efectuează   o   operație   „OOM-killing”   (omorâre   datorită
              supraîncărcării  memoriei.  Imaginea  include  următoarele informații pentru fiecare sarcină (fir,
              proces): ID fir, ID utilizator real, ID grup de fire (ID proces), dimensiunea  memoriei  virtuale,
              dimensiunea  setului  rezident, CPU-ul pe care este programată sarcina, scorul oom_adj (a se vedea
              descrierea /proc/pid/oom_adj) și numele comenzii. Acest lucru este util pentru a determina de ce a
              fost invocată funcția OOM-killer și pentru a identifica sarcina defectuoasă care a cauzat-o.

              Dacă conține valoarea zero, această informație este suprimată. Pe sistemele foarte mari cu mii  de
              sarcini,  este  posibil  să  nu  fie  fezabil să se creeze imaginea cu informațiile privind starea
              memoriei pentru fiecare dintre acestea. Astfel de sisteme nu ar trebui să fie forțate să suporte o
              penalizare a performanței în situații OOM în care informațiile nu sunt dorite.

              Dacă este stabilită la diferit de zero, această informație este afișată ori de câte ori OOM-killer
              omoară efectiv o sarcină care consumă multă memorie.

              Valoarea implicită este 0.

       /proc/sys/vm/oom_kill_allocating_task (începând cu Linux 2.6.24)
              Aceasta activează sau dezactivează omorârea sarcinii care declanșează OOM-killer  în  situații  de
              lipsă de memorie.

              Dacă este stabilită la zero, OOM-killer va scana întreaga listă de sarcini și va selecta o sarcină
              pe  bază  euristică  pentru a o omorî. Aceasta selectează în mod normal o sarcină defectuoasă care
              consumă multă memorie și care eliberează o cantitate mare de memorie atunci când este eliminată.

              Dacă această valoare este diferită de zero,  OOM-killer  omoară  pur  și  simplu  sarcina  care  a
              declanșat  condiția  de  depășire  a  memoriei.  Acest  lucru evită o scanare a listei de sarcini,
              posibil costisitoare.

              Dacă valoarea lui /proc/sys/vm/panic_on_oom este diferită de zero, aceasta are prioritate față  de
              orice valoare utilizată în /proc/sys/vm/oom_kill_allocating_task.

              Valoarea implicită este 0.

       /proc/sys/vm/overcommit_kbytes (începând cu Linux 3.14)
              Acest  fișier  inscriptibil  oferă o alternativă la /proc/sys/vm/overcommit_ratio pentru controlul
              CommitLimit atunci  când  /proc/sys/vm/overcommit_memory  are  valoarea  2.  Acest  lucru  permite
              specificarea  cantității de memorie suprasolicitată ca valoare absolută (în ko), și nu ca procent,
              așa cum se face cu overcommit_ratio. Acest lucru permite un control  mai  fin  al  CommitLimit  pe
              sistemele cu dimensiuni de memorie extrem de mari.

              Numai   unul   dintre   overcommit_kbytes   sau   overcommit_ratio   poate  avea  un  efect:  dacă
              overcommit_kbytes are  o  valoare  diferită  de  zero,  atunci  este  utilizat  pentru  a  calcula
              CommitLimit, în caz contrar este utilizat overcommit_ratio. Scrierea unei valori în oricare dintre
              aceste fișiere face ca valoarea din celălalt fișier să fie pusă la zero.

       /proc/sys/vm/overcommit_memory
              Acest fișier conține modul de contabilizare a memoriei virtuale a nucleului. Valorile sunt:

                     0: supra-rezervare „overcommit” euristică (aceasta este valoarea implicită)
                     1: întotdeauna supra-rezervare, nu verifică niciodată
                     2: verifică întotdeauna, niciodată supra-rezervare

              În  modul 0, apelurile mmap(2) cu MAP_NORESERVE nu sunt verificate, iar verificarea implicită este
              foarte slabă, ceea ce conduce la riscul de a obține un proces „OOM-killed”.

              În modul 1, nucleul pretinde că există  întotdeauna  suficientă  memorie,  până  când  memoria  se
              epuizează.  Un  caz  de  utilizare  pentru  acest  mod  este  reprezentat de aplicațiile de calcul
              științific care utilizează matrici disperse mari. Înainte de Linux 2.6.0, orice  valoare  diferită
              de zero implica modul 1.

              În  modul  2  (disponibil  începând  cu Linux 2.6), spațiul total de adrese virtuale care poate fi
              alocat (CommitLimit în /proc/meminfo) se calculează astfel

                  CommitLimit = (total_RAM - total_huge_TLB) *
                             overcommit_ratio / 100 + total_swap

              unde:

              •  total_RAM este cantitatea totală de RAM din sistem;

              •  total_huge_TLB este cantitatea de memorie pusă deoparte pentru paginile imense;

              •  overcommit_ratio este valoarea din /proc/sys/vm/overcommit_ratio; și

              •  total_swap este cantitatea de spațiu de interschimb (swap).

              De exemplu, într-un sistem cu 16 Go de RAM fizică, 16 Go  de  spațiu  interschimb,  niciun  spațiu
              dedicat paginilor imense și un overcommit_ratio de 50, această formulă generează un CommitLimit de
              24 Go.

              Începând  cu  Linux  3.14, dacă valoarea din /proc/sys/vm/overcommit_kbytes este diferită de zero,
              atunci CommitLimit este calculată ca:

                  CommitLimit = overcommit_kbytes + total_swap

              A   se   vedea,    de    asemenea,    descrierea    lui    /proc/sys/vm/admin_reserve_kbytes    și
              /proc/sys/vm/user_reserve_kbytes.

       /proc/sys/vm/overcommit_ratio (începând cu Linux 2.6.0)
              Acest  fișier inscriptibil definește un procent cu care memoria poate fi supra-rezervată. Valoarea
              implicită din fișier este 50.  Consultați descrierea /proc/sys/vm/overcommit_memory.

       /proc/sys/vm/panic_on_oom (începând cu Linux 2.6.18)
              Aceasta activează sau dezactivează o intrare în panică a nucleului  într-o  situație  de  lipsă  a
              memoriei.

              Dacă  valoarea  din  acest  fișier este stabilită la 0, OOM-killer-ul nucleului va omorî un proces
              defectuos. De obicei, OOM-killer este capabil  să  omoare  un  proces  defectuos  și  sistemul  va
              supraviețui.

              Dacă  valoarea  din acest fișier este stabilită la 1, atunci nucleul intră în mod normal în panică
              atunci când se produce o depășire a memoriei. Cu toate acestea, dacă un proces limitează alocările
              la anumite noduri utilizând politici de memorie (mbind(2) MPOL_BIND) sau cpuset-uri (cpuset(7)) și
              aceste noduri ating starea de epuizare a memoriei, un proces poate fi  omorât  de  OOM-killer.  În
              acest caz nu se produce intrarea în panică: deoarece memoria altor noduri poate fi liberă, aceasta
              înseamnă că este posibil ca sistemul în ansamblu să nu fi ajuns încă într-o situație de epuizare a
              memoriei.

              Dacă  valoarea  din  acest  fișier este stabilită la 2, nucleul intră întotdeauna în panică atunci
              când apare o condiție de epuizre a memoriei.

              Valoarea implicită este 0. 1 și 2 sunt pentru protecția împotriva cazurilor de grupare a erorilor.
              Selectați oricare dintre acestea în funcție de politica de protecție în caz de eroare.

       /proc/sys/vm/swappiness
              Valoarea din acest fișier controlează  agresivitatea  cu  care  nucleul  va  schimba  paginile  de
              memorie. Valorile mai mari cresc agresivitatea, iar valorile mai mici scad agresivitatea. Valoarea
              implicită este 60.

       /proc/sys/vm/user_reserve_kbytes (începând cu Linux 3.10)
              Specifică  o  cantitate  de memorie (în Kio) care să fie rezervată pentru procesele de utilizator.
              Acest lucru este menit să împiedice un utilizator să pornească un singur proces care consumă multă
              memorie, astfel încât să nu poată recupera (kill the hog). Valoarea din  acest  fișier  are  efect
              numai  atunci  când /proc/sys/vm/overcommit_memory este stabilită la 2 (modul „overcommit never”).
              În acest caz, sistemul rezervă o cantitate de  memorie  care  este  minimum  [3%  din  dimensiunea
              procesului curent, user_reserve_kbytes].

              Valoarea  implicită  din acest fișier este minimul de [3% din paginile libere, 128Mio] exprimat în
              Kio.

              Dacă valoarea din acest fișier este stabilită la zero, atunci unui utilizator i se va  permite  să
              aloce   toată   memoria   liberă   cu   un   singur   proces   (minus   cantitatea   rezervată  de
              /proc/sys/vm/admin_reserve_kbytes).  Orice încercare ulterioară de a executa o comandă va avea  ca
              rezultat mesajul „fork: Cannot allocate memory”.

              Modificarea  valorii  din  acest  fișier  intră  în  vigoare  ori de câte ori o aplicație solicită
              memorie.

       /proc/sys/vm/unprivileged_userfaultfd (începând cu Linux 5.2)
              Acest fișier (inscriptibil) expune un indicator care controlează dacă procesele neprivilegiate  au
              voie   să   utilizeze  userfaultfd(2).   Dacă  acest  fișier  are  valoarea  1,  atunci  procesele
              neprivilegiate pot utiliza userfaultfd(2).   Dacă  acest  fișier  are  valoarea  0,  atunci  numai
              procesele  care  au  capacitatea CAP_SYS_PTRACE pot utiliza userfaultfd(2).  Valoarea implicită în
              acest fișier este 1.

CONSULTAȚI ȘI

       proc(5), proc_sys(5)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                     proc_sys_vm(5)