Cómo detectar consumo excesivo de CPU en Linux
Cuando un servidor Linux empieza a ir lento, la CPU suele ser una de las primeras sospechosas. Pero ver un pico alto no significa automáticamente que haya un problema grave. Lo importante es saber diferenciar entre un uso puntual normal, un proceso descontrolado, una carga sostenida o un síntoma causado por WordPress, PHP, base de datos, backups o ataques automáticos.
En un VPS, una web corporativa, un servidor nginx o una instalación WordPress, detectar consumo excesivo de CPU permite tomar mejores decisiones: optimizar, reiniciar un servicio, revisar logs, ampliar recursos o corregir una configuración.
Este artículo explica cómo analizar consumo de CPU en Linux desde una perspectiva práctica, con comandos básicos, interpretación de procesos y criterios para no actuar a ciegas.
Índice
- Qué significa realmente consumo alto de CPU
- Síntomas de CPU excesiva en un servidor
- Usar top y htop para ver procesos
- Entender el load average
- Buscar procesos concretos con ps
- Identificar servicios que consumen demasiado
- Consumo excesivo de CPU en WordPress
- CPU alta por bots o ataques automáticos
- CPU alta por backups, cron y tareas programadas
- Qué hacer cuando detectas el proceso responsable
- Errores frecuentes al diagnosticar CPU alta
- Conclusión
- Preguntas frecuentes
Qué significa realmente consumo alto de CPU
La CPU es el recurso que ejecuta instrucciones. Cuando un proceso necesita hacer cálculos, atender peticiones, comprimir archivos, generar páginas dinámicas o procesar consultas, consume CPU.
Un consumo alto puntual puede ser normal. Por ejemplo, durante una actualización, una copia de seguridad, una compresión, una importación de contenidos o un pico de tráfico legítimo.
El problema aparece cuando el consumo es:
- Sostenido durante mucho tiempo.
- Recurrente sin explicación.
- Provoca lentitud visible.
- Satura el servidor y genera errores.
- Coincide con bots, procesos colgados o consultas pesadas.
No conviene analizar CPU de forma aislada. Un servidor puede tener CPU alta por falta de memoria, exceso de procesos PHP, base de datos saturada, disco lento o tráfico automatizado.
Por eso este diagnóstico debe encajar dentro de una visión más amplia como la explicada en cómo monitorizar recursos del servidor.
Síntomas de CPU excesiva en un servidor
El consumo excesivo de CPU suele manifestarse con señales bastante claras, aunque no siempre indican por sí solas la causa.
Síntomas habituales:
- La web carga muy lenta.
- El panel de WordPress tarda demasiado.
- Aparecen errores 502, 503 o 504.
- PHP-FPM acumula procesos.
- MariaDB o MySQL responde con lentitud.
- El servidor tarda en responder por SSH.
- Los backups tardan mucho más de lo normal.
- El proveedor avisa de consumo excesivo.
Estos síntomas pueden deberse a CPU, pero también a memoria, disco, red o configuración. La clave es observar datos antes de tocar servicios.
Si el problema aparece después de cambios recientes, conviene revisar qué se ha modificado: plugin nuevo, actualización, cambio de configuración nginx, tarea cron, importación masiva o migración.
Usar top y htop para ver procesos
El comando top permite ver en tiempo real qué procesos consumen más CPU y memoria.
top
En la parte superior se muestra información general del sistema, y debajo aparece la lista de procesos ordenable por consumo.
Una alternativa más cómoda es htop, si está instalado:
htop
Con estas herramientas puedes identificar procesos como:
php-fpmmysqldomariadbdnginxapache2tar,gzipo procesos de backup.- Scripts personalizados.
- Procesos desconocidos que conviene investigar.
Ver un proceso arriba del todo no significa que sea culpable automáticamente. Hay que observar si el consumo se mantiene, si coincide con una tarea conocida y si aparece repetidamente.
Entender el load average
El load average indica la carga media del sistema durante diferentes intervalos de tiempo. Suele mostrarse para 1, 5 y 15 minutos.
Puede consultarse con:
uptime
O aparece también en herramientas como top.
Un load alto no siempre significa CPU saturada en sentido estricto, porque también puede incluir procesos esperando disco u otros recursos. Aun así, es una señal útil para ver si la carga es puntual o sostenida.
Interpretación práctica:
- Valor alto en 1 minuto pero bajo en 15 minutos: pico reciente.
- Valor alto en 1, 5 y 15 minutos: problema sostenido.
- Valor creciente: el servidor se está cargando progresivamente.
La interpretación depende del número de CPU disponibles. No es lo mismo un load de 2 en una máquina con 1 vCPU que en una con 8 vCPU.
Buscar procesos concretos con ps
Además de top, el comando ps permite listar procesos y ordenarlos por consumo.
Un comando útil para ver los procesos que más CPU consumen puede ser:
ps aux --sort=-%cpu | head
Esto muestra los procesos ordenados de mayor a menor consumo de CPU.
También puedes buscar procesos concretos:
ps aux | grep php
ps aux | grep mysql
ps aux | grep nginx
Esta revisión ayuda a detectar si el consumo viene de PHP, base de datos, tareas de backup, scripts propios o procesos inesperados.
Si aparece un proceso desconocido consumiendo mucho, no conviene matarlo sin investigar. Primero hay que entender qué es, quién lo lanzó y por qué está funcionando.
Identificar servicios que consumen demasiado
En un servidor web típico, los principales sospechosos suelen ser PHP-FPM, MariaDB/MySQL, nginx, Apache, procesos de backup o tareas programadas.
Servicios a revisar:
- PHP-FPM: puede consumir mucho si WordPress recibe tráfico, bots o procesos pesados.
- MariaDB/MySQL: puede indicar consultas lentas, tablas grandes o falta de optimización.
- nginx o Apache: pueden reflejar mucho tráfico, descargas o ataques automatizados.
- cron: puede lanzar tareas programadas en momentos concretos.
- backups: pueden consumir CPU al comprimir archivos o exportar bases de datos.
Para ver el estado de un servicio:
sudo systemctl status nginx
sudo systemctl status php-fpm
sudo systemctl status mariadb
El nombre exacto puede variar según la versión instalada, por ejemplo php8.1-fpm, php8.2-fpm o mysql.
Si después de diagnosticar necesitas actuar, conviene hacerlo con método siguiendo cómo reiniciar servicios Linux correctamente.
Consumo excesivo de CPU en WordPress
WordPress puede generar consumo alto de CPU por muchos motivos. No siempre el problema está en el servidor contratado; muchas veces está en la propia aplicación.
Causas habituales:
- Plugins pesados o mal programados.
- Temas complejos.
- Muchas peticiones a
wp-admin. - Cron interno de WordPress ejecutándose con frecuencia.
- Consultas lentas a la base de datos.
- Falta de caché.
- Bots atacando
wp-login.phpoxmlrpc.php. - Generación masiva de miniaturas o procesos de importación.
Antes de ampliar el VPS, conviene revisar plugins, logs, caché, base de datos y tráfico automático.
Si estás montando la web desde cero, una instalación limpia ayuda mucho. Puedes apoyarte en cómo instalar WordPress manualmente. Si usas nginx, también tiene sentido revisar cómo proteger WordPress desde nginx.
CPU alta por bots o ataques automáticos
Los bots pueden provocar consumo elevado aunque apenas haya usuarios reales. Pueden solicitar muchas páginas, atacar rutas de WordPress, probar contraseñas o generar errores repetidos.
Señales de tráfico automatizado:
- Muchas peticiones desde la misma IP.
- Accesos repetidos a rutas inexistentes.
- Intentos contra
wp-login.php. - Peticiones a
xmlrpc.php. - Códigos 404, 403 o 500 repetidos.
- Picos de CPU sin tráfico humano aparente.
Para investigarlo, revisa logs de nginx o Apache. Muchas veces el problema se entiende mejor mirando accesos que mirando solo CPU.
Este caso enlaza directamente con cómo evitar ataques automáticos a tu servidor y cómo configurar fail2ban correctamente.
CPU alta por backups, cron y tareas programadas
No todo consumo alto es malo. Un backup puede consumir CPU al comprimir archivos, exportar bases de datos o sincronizar copias externas.
El problema aparece cuando estas tareas:
- Se ejecutan en horario de tráfico.
- Coinciden varias a la vez.
- No tienen límites razonables.
- Fallan y se repiten.
- Generan archivos enormes.
- Dejan procesos colgados.
Conviene revisar cron y horarios de automatizaciones. Si todos los procesos pesados se ejecutan a la misma hora, el servidor puede saturarse sin necesidad.
Los backups son imprescindibles, pero deben planificarse bien. Puedes continuar con cómo hacer backups automáticos del servidor.
Qué hacer cuando detectas el proceso responsable
Cuando localizas el proceso que consume CPU, no conviene actuar de forma impulsiva. Matar procesos sin entenderlos puede provocar pérdida de datos, corrupción de base de datos o caída de servicios.
Pasos prudentes:
- Identificar proceso y usuario.
- Comprobar si corresponde a una tarea esperada.
- Revisar logs relacionados.
- Valorar si el consumo es puntual o sostenido.
- Comprobar si hay usuarios activos o tareas críticas.
- Reiniciar solo si tiene sentido.
- Documentar lo ocurrido.
Si el problema se repite, no basta con reiniciar. Hay que buscar causa raíz: plugin, bot, consulta lenta, tarea programada, límite de recursos o mala configuración.
En algunos casos hará falta optimizar. En otros, ampliar recursos. Pero ampliar sin diagnóstico puede ser como comprar un motor más grande para un coche con una rueda pinchada.
Errores frecuentes al diagnosticar CPU alta
El error más común es confundir síntoma con causa. Ver CPU alta no explica por sí solo qué la provoca.
Errores habituales:
- Reiniciar servicios sin mirar logs.
- Ampliar VPS sin diagnosticar.
- Culpar al hosting sin revisar WordPress.
- Ignorar bots y tráfico automatizado.
- No revisar cron ni backups.
- Matar procesos críticos sin entenderlos.
- Mirar solo CPU e ignorar memoria, disco o base de datos.
- No documentar incidencias recurrentes.
Diagnosticar bien requiere paciencia, pero ahorra tiempo. Una vez identificado el patrón, es mucho más fácil corregirlo.
Conclusión
Detectar consumo excesivo de CPU en Linux no consiste solo en mirar un porcentaje. Hay que identificar procesos, revisar carga, comprobar logs, distinguir picos normales de problemas sostenidos y relacionar el consumo con WordPress, bots, base de datos, backups o servicios del sistema.
Para una microempresa o un servidor web profesional, este diagnóstico permite evitar decisiones caras o inútiles: reinicios innecesarios, ampliaciones prematuras o cambios de hosting sin causa clara.
La CPU alta no es una respuesta. Es una pista.
El objetivo es convertir esa pista en una explicación útil para mejorar estabilidad, rendimiento y continuidad del proyecto.
Preguntas frecuentes
¿Es malo que la CPU llegue al 100%?
No siempre. Un pico puntual puede ser normal durante backups, actualizaciones o tareas pesadas. Lo preocupante es que el consumo sea sostenido, afecte a la web o no tenga explicación clara.
¿Qué comando uso para ver qué consume CPU en Linux?
Puedes empezar con top o htop. También puedes usar ps aux --sort=-%cpu | head para listar procesos ordenados por consumo de CPU.
¿WordPress puede causar CPU alta?
Sí. Plugins pesados, temas complejos, cron interno, bots, falta de caché, consultas lentas o ataques contra login pueden elevar el consumo de CPU.
¿Debo reiniciar el servidor si la CPU está alta?
No como primera opción. Conviene identificar procesos, revisar logs y entender la causa. Reiniciar puede aliviar temporalmente, pero si no corriges el origen el problema volverá.
¿La CPU alta significa que necesito un VPS más grande?
No necesariamente. Primero hay que diagnosticar. Si el consumo viene de bots, plugins mal configurados o backups mal programados, ampliar recursos puede no resolver el problema de fondo.
¿Los backups pueden subir mucho la CPU?
Sí. Exportar bases de datos, comprimir archivos o sincronizar copias puede consumir CPU. Lo importante es programarlos en horarios adecuados y evitar que coincidan demasiadas tareas pesadas.
¿Cómo sé si la CPU alta viene de bots?
Revisa logs de nginx o Apache. Si ves muchas peticiones repetidas, accesos a rutas de WordPress, errores 404/403/500 o muchas solicitudes desde pocas IPs, puede haber tráfico automatizado causando carga.
