Troubleshooting CPU: Difference between revisions

From Linux Wiki
Jump to navigation Jump to search
(Created page with "= CPU la 100% cauzat de un proces legitim = Este cea mai comună situație. Un server web (Nginx/Apache), un proces Java (Tomcat/Elasticsearch) sau un script PHP/Python buclează la infinit și consumă tot procesorul. == Identificare == <code class="mw-code mw-highlight plainlinks" style="display:block"><!-- --> # ps aux --sort=-%cpu | head -n 11 </code> == Remediere == Identificare <code class="mw-code mw-highlight plainlinks" style="display:block"><!-- --> ...")
 
 
(7 intermediate revisions by the same user not shown)
Line 3: Line 3:
Este cea mai comună situație. Un server web (Nginx/Apache), un proces Java (Tomcat/Elasticsearch) sau un script PHP/Python buclează la infinit și consumă tot procesorul.
Este cea mai comună situație. Un server web (Nginx/Apache), un proces Java (Tomcat/Elasticsearch) sau un script PHP/Python buclează la infinit și consumă tot procesorul.


== Identificare ==
=== Identificare ===
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# ps aux --sort=-%cpu | head -n 11
-->&#32;# ps aux --sort=-%cpu | head -n 11
</code>
</code>


== Remediere ==
=== Remediere ===
Identificare
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# kill -15 <PID> <span style="font-style: italic;"># Graceful kill</span>
-->&#32;# kill -15 <PID> <span style="font-style: italic;color:#4d4d4d"># Graceful kill</span>
&#32;# kill -9 <PID>  <span style="font-style: italic;"># Hard kill</span>
&#32;# kill -9 <PID>  <span style="font-style: italic;color:#4d4d4d"># Hard kill</span>
</code>
 
Dacă procesul este important dar vrei să nu mai sufoce serverul, îi scazi prioritatea (crești valoarea nice de la 0 la 19):
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# renice -n 15 -p <PID>
</code>
 
= Load Average foarte mare, dar utilizarea CPU mică =
 
Vezi un "Load Average" de 20 sau 50, dar în top/htop procesorul pare că stă degeaba (stare "wa" sau "iowait"). CPU nu lucrează, ci așteaptă după un disc lent, o conexiune de rețea (NFS/CIFS storage) sau un drive blocat.
 
=== Identificare ===
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# ps -eo pid,ppid,state,cmd | grep " D " <span style="font-style: italic;color:#4d4d4d"># vezi procesele blocate în "Uninterruptible Sleep"</span>
&#32;# mpstat 1 5  <span style="font-style: italic;color:#4d4d4d"># urmărește  coloana %iowait</span>
&#32;# iotop -o  <span style="font-style: italic;color:#4d4d4d"># verifică ce proces generează "I/O block"</span>
</code>
 
=== Remediere ===
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# umount -f -l /path/to/mount <span style="font-style: italic;color:#4d4d4d"># umount NFS/CIFS blocat</span>
</code>
 
= CPU sufocat de întreruperi de rețea =
Apare de obicei pe mașini virtuale cu trafic de rețea foarte intens (DB, HAProxy) unde CPU este încărcat cu procesearea pachetele de reţea.
 
=== Identificare ===
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# watch -d -n 1 "cat /proc/interrupts" <span style="font-style: italic;color:#4d4d4d"># arată care core/thread este încărcat de placa de reţea</span>
</code>
 
=== Remediere ===
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# systemctl enable --now irqbalance <span style="font-style: italic;color:#4d4d4d"># Activarea irqbalance</span>
&#32;# ethtool -G ens18 rx 4096 tx 4096 <span style="font-style: italic;color:#4d4d4d"># Optimizare la nivel de NIC</span>
</code>
 
Pentru a putea activa și porni serviciul irqbalance, pachetul trebuie mai întâi instalat.
<code class="mw-code mw-highlight plainlinks" style="display:block"><!--
-->&#32;# apt update && sudo apt install -y irqbalance
&#32;# dnf install -y irqbalance
</code>
</code>

Latest revision as of 19:10, 20 October 2026

CPU la 100% cauzat de un proces legitim[edit | edit source]

Este cea mai comună situație. Un server web (Nginx/Apache), un proces Java (Tomcat/Elasticsearch) sau un script PHP/Python buclează la infinit și consumă tot procesorul.

Identificare[edit | edit source]

# ps aux --sort=-%cpu | head -n 11

Remediere[edit | edit source]

# kill -15 <PID> # Graceful kill # kill -9 <PID> # Hard kill

Dacă procesul este important dar vrei să nu mai sufoce serverul, îi scazi prioritatea (crești valoarea nice de la 0 la 19): # renice -n 15 -p <PID>

Load Average foarte mare, dar utilizarea CPU mică[edit | edit source]

Vezi un "Load Average" de 20 sau 50, dar în top/htop procesorul pare că stă degeaba (stare "wa" sau "iowait"). CPU nu lucrează, ci așteaptă după un disc lent, o conexiune de rețea (NFS/CIFS storage) sau un drive blocat.

Identificare[edit | edit source]

# ps -eo pid,ppid,state,cmd | grep " D " # vezi procesele blocate în "Uninterruptible Sleep" # mpstat 1 5 # urmărește coloana %iowait # iotop -o # verifică ce proces generează "I/O block"

Remediere[edit | edit source]

# umount -f -l /path/to/mount # umount NFS/CIFS blocat

CPU sufocat de întreruperi de rețea[edit | edit source]

Apare de obicei pe mașini virtuale cu trafic de rețea foarte intens (DB, HAProxy) unde CPU este încărcat cu procesearea pachetele de reţea.

Identificare[edit | edit source]

# watch -d -n 1 "cat /proc/interrupts" # arată care core/thread este încărcat de placa de reţea

Remediere[edit | edit source]

# systemctl enable --now irqbalance # Activarea irqbalance # ethtool -G ens18 rx 4096 tx 4096 # Optimizare la nivel de NIC

Pentru a putea activa și porni serviciul irqbalance, pachetul trebuie mai întâi instalat. # apt update && sudo apt install -y irqbalance # dnf install -y irqbalance