Troubleshooting RAM: Difference between revisions

From Linux Wiki
Jump to navigation Jump to search
No edit summary
Line 46: Line 46:
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# sysctl vm.swappiness=10 <span style="font-style: italic;color:#4d4d4d"># Ajustează agresivitatea Swap-ului. 10 forţeaya kernelul să folosească RAM la maximum</span>
-->&#32;# sysctl vm.swappiness=10 <span style="font-style: italic;color:#4d4d4d"># Ajustează agresivitatea Swap-ului. 10 forţeaya kernelul să folosească RAM la maximum</span>
&#32;# grep -q "^vm.swappiness" /etc/sysctl.conf && sed -i 's/^vm.swappiness.*/vm.swappiness=10/' /etc/sysctl.conf || echo "vm.swappiness=10" >> /etc/sysctl.conf <span style="font-style: italic;color:#4d4d4d"># Persistenţă Swappiness</span>
&#32;# swapoff -a && sudo swapon -a <span style="font-style: italic;color:#4d4d4d"># Golirea completă a Swap-ului. acesta funcţionează doar daca este disponibil suficient RAM</span>
&#32;# swapoff -a && sudo swapon -a <span style="font-style: italic;color:#4d4d4d"># Golirea completă a Swap-ului. acesta funcţionează doar daca este disponibil suficient RAM</span>
</code>
</code>

Revision as of 23:53, 20 October 2026

Serviciul se oprește brusc fără eroare vizibilă (OOM Killer Activ)

Când sistemul rămâne complet fără memorie RAM și Swap, kernelul Linux activează mecanismul Out-Of-Memory (OOM) Killer. Acesta alege cel mai mare consumator de RAM (adesea MySQL/MariaDB, Java, Elasticsearch) și îl oprește instantaneu pentru a salva sistemul de la un crash total.

Identificare

# dmesg -T | grep -i -E 'oom|kill' # vei vedera "Main process exited, code=killed" # journalctl -xb | grep -i oom-killer # foloseşte journalctl pentru loguri mai vechi

Remediere

# systemctl start <serviciu> # Repornire temporară # echo -1000 > /proc/<PID_PROCES>/oom_score_adj # Ajustarea scorului OOM între -1000 (prioritate mare) şi 1000

Soluţia recomandată este de a adăuga memorie RAM/Swap

Memoria RAM este epuizată de procese "Runaway" (User Space Memory Leak)

Un serviciu sau un script custom are un "memory leak" (pierdere de memorie) și consumă progresiv tot RAM-ul disponibil, ducând sistemul în faza de degradare a performanței.

Identificare

# ps aux --sort=-%mem | head -n 10 # sortează primele 10 procese după consumul de RAM # htop # top purişti ;)

Remediere

# kill -15 <PID> # Oprire controlată # kill -9 <PID> # Oprire forţată

Serverul devine extrem de lent din cauza utilizării excesive a Swap-ului

Când memoria RAM fizică se apropie de 100%, Linux începe să mute paginile de memorie inactive pe discul hard/SSD care este mult mai lent decât RAM-ul iar sistemul intră într-o stare numită "thrashing"

Identificare

# free -h # Verifică utilizarea Swap-ului # awk '{if ($2>0) print $2, $3}' /proc/*/smaps_rollup | sort -n -r | head -n 10 # vezi exact ce procese ocupă spațiu în Swap

Remediere

# sysctl vm.swappiness=10 # Ajustează agresivitatea Swap-ului. 10 forţeaya kernelul să folosească RAM la maximum # grep -q "^vm.swappiness" /etc/sysctl.conf && sed -i 's/^vm.swappiness.*/vm.swappiness=10/' /etc/sysctl.conf || echo "vm.swappiness=10" >> /etc/sysctl.conf # Persistenţă Swappiness # swapoff -a && sudo swapon -a # Golirea completă a Swap-ului. acesta funcţionează doar daca este disponibil suficient RAM