/proc/pid/oom_score_adj - ajustarea punctajului OOM-killer
- /proc/pid/oom_score_adj (începând cu Linux
2.6.36)
- Acest fișier poate fi utilizat pentru a ajusta euristica de
comportament inadecvat „badness” utilizată pentru a
selecta care proces este ucis în condiții de lipsă de
memorie.
- Metoda euristică a comportamentului inadecvat atribuie o valoare
fiecărei sarcini candidate, cuprinsă între 0 (nu
omoară niciodată) și 1000 (omoară
întotdeauna), pentru a determina care proces este vizat.
Unitățile reprezintă aproximativ o proporție
de-a lungul intervalului de memorie permisă pe care procesul o
poate aloca, pe baza unei estimări a utilizării curente a
memoriei și a spațiului memoriei de interschimb. De exemplu,
dacă o sarcină utilizează toată memoria
permisă, punctajul său de comportament inadecvat va fi 1000.
Dacă utilizează jumătate din memoria permisă,
punctajul său va fi de 500.
- Există un factor suplimentar inclus în punctajul de
răutate: procesele utilizatorului root primesc 3% de memorie
în plus față de alte sarcini.
- Cantitatea de memorie„permisă” depinde de contextul
în care a fost apelat OOM-killer. Dacă se datorează
epuizării memoriei alocate cpuset-ului sarcinii de alocare, memoria
permisă reprezintă setul de memorii alocate cpuset-ului
respectiv (a se vedea cpuset(7)). Dacă se datorează
epuizării nodului (nodurilor) unei „mempolicy”,
memoria permisă reprezintă setul de noduri
„mempolicy”. Dacă se datorează atingerii unei
limite de memorie (sau a unei limite a spațiului memoriei de
interschimb), memoria permisă este limita configurată.
În cele din urmă, dacă se datorează faptului
că întregul sistem a rămas fără
memorie, memoria permisă reprezintă toate resursele
alocabile.
- Valoarea oom_score_adj este adăugată la punctajul de
comportament inadecvat înainte de a fi utilizată pentru a
determina sarcina care trebuie eliminată. Valorile acceptabile
variază de la -1000 (OOM_SCORE_ADJ_MIN) la +1000
(OOM_SCORE_ADJ_MAX). Acest lucru permite spațiului utilizatorului
să controleze preferința pentru OOM-killing, variind de la a
prefera întotdeauna o anumită sarcină sau a o
dezactiva complet de la OOM-killing. Cea mai mică valoare
posibilă, -1000, este echivalentă cu dezactivarea
completă a OOM-killing pentru sarcina respectivă, deoarece
aceasta va raporta întotdeauna un punctaj de comportament inadecvat
de 0.
- În consecință, este foarte simplu pentru
spațiul de utilizator să definească cantitatea de
memorie care trebuie luată în considerare pentru fiecare
sarcină. Stabilirea unei valori oom_score_adj de +500, de
exemplu, este aproximativ echivalentă cu a permite celorlalte
sarcini care împart același sistem, „cpuset”,
„mempolicy” sau resurse ale controlorului de memorie
să utilizeze cu cel puțin 50% mai multă memorie. O
valoare de -500, pe de altă parte, ar fi aproximativ
echivalentă cu reducerea cu 50% a memoriei permise pentru
sarcină pentru a nu fi considerată ca fiind în
defavoarea sarcinii.
- Pentru compatibilitatea cu nucleele anterioare,
/proc/pid/oom_adj poate fi utilizat în continuare
pentru a regla punctajul de comportament inadecvat. Valoarea sa este
scalată liniar cu oom_score_adj.
- Scrierea în /proc/pid/oom_score_adj sau
/proc/pid/oom_adj îl va modifica pe celălalt
cu valoarea sa scalată.
- Programul choom(1) oferă o interfață de linie
de comandă pentru ajustarea valorii oom_score_adj a unui
proces în desfășurare sau a unei comenzi nou
executate.
- /proc/pid/oom_adj (începând cu Linux
2.6.11)
- Acest fișier poate fi utilizat pentru a ajusta punctajul utilizat
pentru a selecta procesul care ar trebui omorât într-o
situație OOM (out-of-memory). Nucleul utilizează
această valoare pentru o operație de bit-shift a valorii
oom_score a procesului: valorile valide sunt cuprinse între
-16 și +15, plus valoarea specială -17, care
dezactivează complet omorârea OOM pentru acest proces. Un
punctaj pozitiv crește probabilitatea ca acest proces să fie
omorât de OOM-killer; un punctaj negativ scade probabilitatea.
- Valoarea implicită pentru acest fișier este 0; un proces nou
moștenește valoarea oom_adj a părintelui
său. Un proces trebuie să fie privilegiat
(CAP_SYS_RESOURCE) pentru a actualiza acest fișier,
deși un proces își poate crește
întotdeauna propria valoare oom_adj (începând
cu Linux 2.6.20).
- Începând cu Linux 2.6.36, utilizarea acestui fișier
este depreciată în favoarea
/proc/pid/oom_score_adj, și în cele din
urmă eliminată în Linux 3.7.
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.