numa(7) Miscellaneous Information Manual numa(7) NUME numa - prezentare generala a arhitecturii de memorie neuniforma DESCRIERE Accesul neuniform la memorie (NUMA) se refera la sistemele multiprocesor a caror memorie este imparita in mai multe noduri de memorie. Timpul de acces al unui nod de memorie depinde de locaiile relative ale procesorului care face accesul i ale nodului accesat; (acest lucru contrasteaza cu un sistem multiprocesor simetric, in care timpul de acces la toata memoria este acelai pentru toate CPU-urile). In mod normal, fiecare CPU dintr-un sistem NUMA are un nod de memorie local al carui coninut poate fi accesat mai repede decat memoria din nodul local al unui alt CPU sau memoria de pe o magistrala partajata de toate CPU-urile. Apeluri de sistem NUMA Nucleul Linux implementeaza urmatoarele apeluri de sistem legate de NUMA: get_mempolicy(2), mbind(2), migrate_pages(2), move_pages(2) i set_mempolicy(2). Cu toate acestea, in mod normal, aplicaiile ar trebui sa utilizeze interfaa oferita de libnuma; a se vedea seciunea "Suport pentru biblioteca" de mai jos. /proc/pid/numa_maps (incepand cu Linux 2.6.14) Acest fiier afieaza informaii despre politica i alocarea memoriei NUMA a unui proces. Fiecare linie conine informaii despre un interval de memorie utilizat de proces, afiand, printre altele, politica de memorie efectiva pentru acel interval de memorie i pe ce noduri au fost alocate paginile. numa_maps este un fiier numai pentru citire. Atunci cand /proc/pid/numa_maps este citit, nucleul va scana spaiul virtual de adrese al procesului i va raporta modul in care este utilizata memoria. Se afieaza cate o linie pentru fiecare interval de memorie unic al procesului. Primul camp al fiecarei linii indica adresa de inceput a intervalului de memorie. Acest camp permite o corelare cu coninutul fiierului /proc/pid/maps, care conine adresa de sfarit a intervalului i alte informaii, cum ar fi permisiunile de acces i partajarea. Al doilea camp arata politica de memorie in vigoare in prezent pentru intervalul de memorie. Reinei ca politica in vigoare nu este neaparat politica instalata de proces pentru acel interval de memorie. Mai exact, daca procesul a instalat o politica ,,implicita" pentru intervalul respectiv, politica efectiva pentru acest interval va fi politica procesului, care poate fi sau nu ,,implicita". Restul liniei conine informaii despre paginile alocate in intervalul de memorie, dupa cum urmeaza: N= Numarul de pagini alocate pe . include numai paginile alocate in prezent de catre proces. Este posibil ca migrarea paginilor i recuperarea memoriei sa aiba pagini temporar nemarcate asociate cu acest interval de memorie. Aceste pagini pot aparea din nou numai dupa ce procesul a incercat sa le faca referire. In cazul in care intervalul de memorie reprezinta o zona de memorie partajata sau o cartografiere de fiiere, este posibil ca alte procese sa aiba in prezent pagini suplimentare cartografiate intr-un interval de memorie corespunzator. file=ier> Fiierul care stocheaza intervalul de memorie. In cazul in care fiierul este cartografiat ca fiind privat, este posibil ca accesele in scriere sa fi generat pagini COW (,,Copy-On-Write", copiere la scriere) in acest interval de memorie. Aceste pagini sunt afiate ca pagini anonime. heap Intervalul de memorie este utilizat pentru gramada ,,heap". stack Intervalul de memorie este utilizat pentru stiva. huge Interval de memorie imens. Numarul de pagini indicat reprezinta pagini imense i nu pagini de dimensiuni normale. anon= Numarul de pagini anonime din interval. dirty= Numarul de pagini murdare ,,dirty". mapped= Numarul total de pagini cartografiate, daca este diferit de paginile murdare ,,dirty" i anonime ,,anon". mapmax= Numarul maxim de procese de cartografiere (numarul de procese care cartografiaza o singura pagina) intalnit in timpul scanarii. Acesta poate fi utilizat ca indicator al gradului de partajare care are loc intr-un anumit interval de memorie. swapcache= Numarul de pagini care au o intrare asociata pe un dispozitiv swap (memorie virtuala). active= Numarul de pagini din lista activa. Acest camp este afiat numai daca este diferit de numarul de pagini din acest interval. Aceasta inseamna ca in intervalul de memorie exista unele pagini inactive care pot fi eliminate din memorie de catre gestionarul de memorie virtuala (swap) in curand. writeback= Numarul de pagini care sunt in curs de scriere pe disc. STANDARDE Niciunul. NOTE Apelurile de sistem Linux NUMA i interfaa /proc sunt disponibile numai daca nucleul a fost configurat i construit cu opiunea CONFIG_NUMA. Suport pentru biblioteca Face editarea de legaturi cu -lnuma pentru a obine definiiile apelurilor de sistem. libnuma i antetul necesar sunt disponibile in pachetul numactl. Cu toate acestea, aplicaiile nu ar trebui sa utilizeze direct aceste apeluri de sistem. In schimb, se recomanda utilizarea interfeei de nivel superior oferita de funciile numa(3) din pachetul numactl. Pachetul numactl este disponibil la adresa . Pachetul este, de asemenea, inclus in unele distribuii Linux. Unele distribuii includ biblioteca de dezvoltare i antetul in pachetul separat numactl-devel. CONSULTAI I get_mempolicy(2), mbind(2), move_pages(2), set_mempolicy(2), numa(3), cpuset(7), numactl(8) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 numa(7)