Troubleshooting CPU: Difference between revisions
| (5 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"><!-- | ||
--> # ps aux --sort=-%cpu | head -n 11 | --> # ps aux --sort=-%cpu | head -n 11 | ||
</code> | </code> | ||
== Remediere == | === Remediere === | ||
<code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | <code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | ||
--> # kill -15 <PID> <span style="font-style: italic;color:#4d4d4d"># Graceful kill</span> | --> # kill -15 <PID> <span style="font-style: italic;color:#4d4d4d"># Graceful kill</span> | ||
| Line 18: | Line 17: | ||
<code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | <code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | ||
--> # renice -n 15 -p <PID> | --> # 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"><!-- | |||
--> # ps -eo pid,ppid,state,cmd | grep " D " <span style="font-style: italic;color:#4d4d4d"># vezi procesele blocate în "Uninterruptible Sleep"</span> | |||
 # mpstat 1 5 <span style="font-style: italic;color:#4d4d4d"># urmărește coloana %iowait</span> | |||
 # 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"><!-- | |||
--> # 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"><!-- | |||
--> # 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"><!-- | |||
--> # systemctl enable --now irqbalance <span style="font-style: italic;color:#4d4d4d"># Activarea irqbalance</span> | |||
 # 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"><!-- | |||
--> # apt update && sudo apt install -y irqbalance | |||
 # 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