Troubleshooting CPU: Difference between revisions
No edit summary |
No edit summary |
||
| 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 23: | Line 23: | ||
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. | 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 == | === Identificare === | ||
<code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | <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> | --> # ps -eo pid,ppid,state,cmd | grep " D " <span style="font-style: italic;color:#4d4d4d"># vezi procesele blocate în "Uninterruptible Sleep"</span> | ||
| Line 30: | Line 30: | ||
</code> | </code> | ||
== Remediere == | === Remediere === | ||
<code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | <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> | --> # umount -f -l /path/to/mount <span style="font-style: italic;color:#4d4d4d"># umount NFS/CIFS blocat</span> | ||
| Line 38: | Line 38: | ||
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. | 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 == | === Identificare === | ||
<code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | <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> | --> # 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> | </code> | ||
== Remediere == | === Remediere === | ||
<code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | <code class="mw-code mw-highlight plainlinks" style="display:block"><!-- | ||
--> # systemctl enable --now irqbalance <span style="font-style: italic;color:#4d4d4d"># Activarea irqbalance</span> | --> # systemctl enable --now irqbalance <span style="font-style: italic;color:#4d4d4d"># Activarea irqbalance</span> | ||
Revision as of 19:09, 20 October 2026
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
# ps aux --sort=-%cpu | head -n 11
Remediere
# 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ă
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
# 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
# umount -f -l /path/to/mount # umount NFS/CIFS blocat
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
# watch -d -n 1 "cat /proc/interrupts" # arată care core/thread este încărcat de placa de reţea
Remediere
# 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