/proc/meminfo - utilizarea memoriei
- /proc/meminfo
- Acest fișier raportează statistici privind utilizarea
memoriei în sistem. Este utilizat de free(1) pentru a
raporta cantitatea de memorie liberă și utilizată
(atât fizică, cât și swap) pe sistem, precum
și memoria partajată și memoriile tampon utilizate de
nucleu. Fiecare linie a fișierului constă dintr-un nume de
parametru, urmat de două puncte, valoarea parametrului și o
unitate de măsură opțională (de exemplu,
„kB”). Lista de mai jos descrie numele parametrilor
și specificatorul de format necesar pentru a citi valoarea
câmpului. Cu excepția celor menționate mai jos, toate
câmpurile au fost prezente cel puțin de la Linux 2.6.0.
Unele câmpuri sunt afișate numai dacă nucleul a fost
configurat cu diverse opțiuni; aceste dependențe sunt notate
în listă.
- MemTotal
%lu
- Memoria RAM totală utilizabilă (adică memoria RAM
fizică minus câțiva biți rezervați
și codul binar al nucleului).
- MemFree
%lu
- Suma LowFree+HighFree.
- MemAvailable
%lu (începând cu Linux 3.14)
- O estimare a cantității de memorie disponibilă pentru
pornirea de noi aplicații, fără utilizarea memoria
spațiului de interschimb (swap).
- Buffers
%lu
- Stocarea relativ temporară pentru blocuri de disc brute care nu ar
trebui să devină foarte mari (aproximativ 20 Mo).
- Cached %lu
- Cache în memorie pentru fișierele citite de pe disc
(cache-ul de pagină). Nu include SwapCached.
- SwapCached
%lu
- Memoria care a fost plasată cândva în spațiul
de interschimb (swap), care a fost eliminată, dar se află
în continuare în fișierul de interschimb;
(dacă presiunea asupra memoriei este ridicată, aceste pagini
nu trebuie să fie plasate din nou în spațiul de
interschimb, deoarece sunt deja în fișierul de interschimb,
acest lucru economisește I/O).
- Active %lu
- Memorie care a fost utilizată mai recent și care, de obicei,
nu este recuperată decât dacă este absolut
necesar.
- Inactive
%lu
- Memorie care a fost utilizată mai puțin recent. Aceasta este
mai eligibilă pentru a fi recuperată în alte
scopuri.
- Active(anon)
%lu (începând cu Linux 2.6.28)
- [A se documenta]
- Inactive(anon)
%lu (începând cu Linux 2.6.28)
- [A se documenta]
- Active(file)
%lu (începând cu Linux 2.6.28)
- [A se documenta]
- Inactive(file)
%lu (începând cu Linux 2.6.28)
- [A se documenta]
- Unevictable
%lu (începând cu Linux 2.6.28)
- (De la Linux 2.6.28 la Linux 2.6.30, CONFIG_UNEVICTABLE_LRU a fost
necesar.) [A se documenta.]
- Mlocked %lu
(începând cu Linux 2.6.28)
- (De la Linux 2.6.28 la Linux 2.6.30, CONFIG_UNEVICTABLE_LRU a fost
necesar.) [A se documenta.]
- HighTotal
%lu
- (Începând cu Linux 2.6.19, este necesar
CONFIG_HIGHMEM). Cantitatea totală de highmem. Highmem este
toată memoria peste ~860 Mo de memorie fizică. Zonele
highmem sunt destinate utilizării de către programele din
spațiul utilizatorului sau pentru memoria cache de pagină.
Nucleul trebuie să utilizeze trucuri pentru a accesa această
memorie, ceea ce o face mai lentă la acces decât
lowmem.
- HighFree
%lu
- (Începând cu Linux 2.6.19, CONFIG_HIGHMEM este
necesar.) Cantitatea de highmem liberă.
- LowTotal
%lu
- (Începând cu Linux 2.6.19, este necesar
CONFIG_HIGHMEM.) Cantitatea totală de lowmem. Lowmem este
memoria care poate fi utilizată pentru tot ceea ce poate fi
utilizat pentru highmem, dar este, de asemenea, disponibilă pentru
utilizarea de către nucleu pentru propriile sale structuri de date.
Printre multe alte lucruri, este locul în care este alocat tot ce
vine de la Slab. Se întâmplă lucruri rele
atunci când nu mai ai lowmem.
- LowFree
%lu
- (Începând cu Linux 2.6.19, este necesar
CONFIG_HIGHMEM.) Cantitatea de lowmem liberă.
- MmapCopy %lu
(începând cu Linux 2.6.29)
- (CONFIG_MMU este necesar.) [A se documenta.]
- SwapTotal
%lu
- Cantitatea totală de spațiu de interschimb (swap)
disponibil.
- SwapFree
%lu
- Cantitatea de spațiu de interschimb (swap) care este
neutilizată în prezent.
- Dirty %lu
- Memorie care așteaptă să fie scrisă
înapoi pe disc.
- Writeback
%lu
- Memorie care este în curs de rescriere pe disc.
- AnonPages %lu
(începând cu Linux 2.6.18)
- Pagini care nu sunt stocate în fișiere, cartografiate
în tabelele de pagini din spațiul utilizatorului.
- Mapped %lu
- Fișiere care au fost plasate în memorie (cu mmap(2)),
cum ar fi bibliotecile.
- Shmem %lu
(începând cu Linux 2.6.32)
- Cantitatea de memorie consumată în sistemele de
fișiere tmpfs(5).
- KReclaimable
%lu (începând cu Linux 4.20)
- Alocațiile nucleului pe care nucleul va încerca să le
recupereze sub presionarea memoriei. Include SReclaimable (mai jos)
și alte alocări directe cu un instrument de micșorare
„shrinker”.
- Slab %lu
- Cache pentru structuri de date în interiorul nucleului. (A se vedea
slabinfo(5).)
- SReclaimable
%lu (începând cu Linux 2.6.19)
- Parte din Slab, care ar putea fi recuperată, cum ar fi
cache-urile.
- SUnreclaim
%lu (începând cu Linux 2.6.19)
- Parte din Slab, care nu poate fi recuperată prin presionarea
memoriei.
- KernelStack
%lu (începând cu Linux 2.6.32)
- Cantitatea de memorie alocată pentru stivele de nucleu.
- PageTables
%lu (începând cu Linux 2.6.18)
- Cantitatea de memorie dedicată celui mai mic nivel al tabelelor de
pagini.
- Quicklists
%lu (începând cu Linux 2.6.27)
- (CONFIG_QUICKLIST este necesar.) [A se documenta.]
- NFS_Unstable
%lu (începând cu Linux 2.6.18)
- Pagini NFS trimise la server, dar care nu au fost încă
transferate în stocarea stabilă.
- Bounce %lu
(începând cu Linux 2.6.18)
- Memorie utilizată pentru „tampoanele de salt” ale
dispozitivului de blocuri.
- WritebackTmp
%lu (începând cu Linux 2.6.26)
- Memorie utilizată de FUSE pentru tampoanele de rescriere
temporare.
- CommitLimit
%lu (începând cu Linux 2.6.10)
- Aceasta este cantitatea totală de memorie disponibilă
în prezent pentru a fi alocată pe sistem, exprimată
în kilobiți. Această limită este
respectată numai dacă este activată contabilitatea
strict „overcommit” (modul 2 în
/proc/sys/vm/overcommit_memory). Limita este calculată
conform formulei descrise în /proc/sys/vm/overcommit_memory.
Pentru detalii suplimentare, consultați fișierul
sursă al nucleului
Documentation/vm/overcommit-accounting.rst.
- Committed_AS
%lu
- Cantitatea de memorie alocată în prezent pe sistem. Memoria
alocată este o sumă a întregii memorii care a fost
alocată de procese, chiar dacă aceasta nu a fost
„utilizată” de acestea până în
prezent. Un proces care alocă 1 Go de memorie (utilizând
malloc(3) sau similar), dar atinge doar 300 Mo din această
memorie va apărea ca utilizând doar 300 Mo de memorie, chiar
dacă are spațiul de adrese alocat pentru întregul 1
Go.
- Acest 1 Go este memoria care a fost „rezervată” de
către VM și poate fi utilizată în orice moment
de către aplicația de alocare. În cazul în
care sistemul are activată funcția strict overcommit (modul
2 în /proc/sys/vm/overcommit_memory), alocările care
ar depăși CommitLimit nu vor fi permise. Acest lucru
este util în cazul în care trebuie să se garanteze
că procesele nu vor eșua din cauza lipsei de memorie
odată ce memoria a fost alocată cu succes.
- VmallocTotal
%lu
- Dimensiunea totală a zonei de memorie vmalloc.
- VmallocUsed
%lu
- Cantitatea din zona vmalloc care este utilizată.
Începând cu Linux 4.4, acest câmp nu mai este
calculat și este codificat ca 0. Consultați
/proc/vmallocinfo.
- VmallocChunk
%lu
- Cel mai mare bloc contiguu din zona vmalloc care este liber.
Începând cu Linux 4.4, acest câmp nu mai este
calculat și este codificat ca 0. Consultați
/proc/vmallocinfo.
- HardwareCorrupted
%lu (începând cu Linux 2.6.32)
- (CONFIG_MEMORY_FAILURE este necesar.) [A se documenta.]
- LazyFree %lu
(începând cu Linux 4.12)
- Afișează cantitatea de memorie marcată de
madvise(2) MADV_FREE.
- AnonHugePages
%lu (începând cu Linux 2.6.38)
- (Este necesar CONFIG_TRANSPARENT_HUGEPAGE.) Pagini imense care nu
sunt stocate în fișiere, cartografiate în tabelele de
pagini din spațiul utilizatorului.
- ShmemHugePages
%lu (începând cu Linux 4.8)
- (Este necesar CONFIG_TRANSPARENT_HUGEPAGE.) Memorie
utilizată de memoria partajată (shmem) și
tmpfs(5) alocată cu pagini imense.
- ShmemPmdMapped
%lu (începând cu Linux 4.8)
- (Este necesar CONFIG_TRANSPARENT_HUGEPAGE.) Memoria
partajată este cartografiată în spațiul
utilizatorului cu pagini imense.
- CmaTotal %lu
(începând cu Linux 3.1)
- Numărul total de pagini CMA (Contiguous Memory Allocator); (este
necesar CONFIG_CMA).
- CmaFree %lu
(începând cu Linux 3.1)
- Eliberează paginile CMA (Contiguous Memory Allocator); (este
necesar CONFIG_CMA).
- HugePages_Total
%lu
- (Este necesar CONFIG_HUGETLB_PAGE). Dimensiunea grupului de pagini
imense.
- HugePages_Free
%lu
- (Este necesar CONFIG_HUGETLB_PAGE). Numărul de pagini imense
din grup care nu sunt încă alocate.
- HugePages_Rsvd
%lu (începând cu Linux 2.6.17)
- (Este necesar CONFIG_HUGETLB_PAGE). Acesta este numărul de
pagini imense pentru care s-a făcut un angajament de alocare din
grup, dar nicio alocare nu a fost încă făcută.
Aceste pagini imense rezervate garantează faptul că o
aplicație va putea să aloce o pagină imensă
din fondul de pagini imense în momentul producerii unei erori.
- HugePages_Surp
%lu (începând cu Linux 2.6.24)
- (CONFIG_HUGETLB_PAGE este necesar). Acesta este numărul de
pagini imense din grup peste valoarea din
/proc/sys/vm/nr_hugepages. Numărul maxim de pagini imense
excedentare este controlat de
/proc/sys/vm/nr_overcommit_hugepages.
- Hugepagesize
%lu
- (Este necesar CONFIG_HUGETLB_PAGE). Dimensiunea paginilor
imense.
- DirectMap4k
%lu (începând cu Linux 2.6.27)
- Numărul de octeți de RAM cartografiați liniar de
nucleu în pagini de 4 ko. (x86)
- DirectMap4M
%lu (începând cu Linux 2.6.27)
- Numărul de octeți de RAM cartografiați liniar de
către nucleu în pagini de 4 Mo. (x86 cu CONFIG_X86_64
sau CONFIG_X86_PAE activat).
- DirectMap2M
%lu (începând cu Linux 2.6.27)
- Numărul de octeți de RAM cartografiați liniar de
către nucleu în pagini de 2 Mo. (x86 cu CONFIG_X86_64
sau CONFIG_X86_PAE activat).
- DirectMap1G
%lu (începând cu Linux 2.6.27)
- (x86 cu CONFIG_X86_64 și CONFIG_X86_DIRECT_GBPAGES
activate)
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.