Troubleshooting CPU

From Linux Wiki
Jump to navigation Jump to search

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