Cómo reducir el consumo de CPU y memoria de un sitio web

Para reducir el consumo de CPU y memoria de un sitio web primero hay que identificar qué proceso, URL o tarea genera la carga. Aumentar recursos puede ser correcto cuando existe crecimiento legítimo, pero no corrige un plugin defectuoso, una consulta lenta, un bot agresivo o una tarea cron que se superpone.

En servidores con CloudLinux, cada cuenta puede tener límites independientes de CPU, memoria física, I/O, IOPS, cantidad de procesos y procesos de entrada. Esta separación evita que una cuenta monopolice el servidor y permite observar qué recurso se agotó.

Entender las métricas antes de optimizar

  • CPU o SPEED: tiempo de procesador utilizado por los procesos de la cuenta.
  • Memoria física: RAM ocupada por PHP y otros procesos asociados.
  • I/O: velocidad con la que se leen o escriben datos en disco.
  • IOPS: cantidad de operaciones de entrada y salida por segundo.
  • Entry Processes: solicitudes simultáneas que ingresan a la cuenta.
  • NPROC: cantidad total de procesos que puede ejecutar el usuario.

Un límite alcanzado no siempre significa falta de CPU. Muchas solicitudes simultáneas pueden agotar procesos de entrada; un backup puede saturar I/O; una importación puede consumir memoria. La documentación de límites de CloudLinux diferencia CPU, memoria, I/O, procesos y procesos de entrada. Consultá también cómo verificar los límites de recursos en CloudLinux.

Buscar el horario y el patrón del consumo

Abrí Uso de recursos en cPanel y revisá el período afectado. Anotá qué métrica alcanzó el límite y a qué hora. Después compará con:

  • registros de acceso y errores;
  • tareas cron y WP-Cron;
  • backups, importaciones o escaneos;
  • publicaciones o campañas que aumentaron visitas;
  • actualizaciones recientes de plugins o temas;
  • actividad de bots sobre una misma URL.

Una captura del uso actual puede no mostrar un pico ocurrido de madrugada. Utilizá el historial y correlacioná la hora exacta con los registros.

Actualizar PHP y la aplicación

Mantené el CMS, plugins, temas y módulos actualizados. Utilizá una versión de PHP compatible y con soporte. Las versiones modernas suelen mejorar rendimiento, pero antes de cambiarlas verificá compatibilidad en una copia de prueba.

No instales múltiples plugins con la misma función. Componentes abandonados pueden ejecutar consultas innecesarias, generar errores repetitivos o abrir vulnerabilidades que terminan consumiendo recursos.

Configurar una caché adecuada

Una caché de página evita ejecutar PHP y consultar la base de datos para cada visita anónima. OPcache conserva bytecode compilado y reduce trabajo repetido. La caché de objetos puede ayudar en aplicaciones que realizan muchas consultas, siempre que se configure y supervise correctamente.

Después de activarla, comprobá que usuarios conectados, carrito de compras, formularios y contenido personalizado no queden almacenados de forma incorrecta. Una caché mal configurada puede reducir CPU pero mostrar información equivocada.

Revisar plugins, temas y procesos en segundo plano

Desactivá componentes de forma controlada en un entorno de pruebas y medí la diferencia. Prestá atención a constructores visuales, estadísticas internas, copias automáticas, optimizadores que regeneran archivos, búsquedas, filtros complejos y plugins que llaman APIs externas.

En WordPress, Action Scheduler y WP-Cron pueden acumular tareas. No borres tablas o eventos sin identificar el plugin responsable. Corregí la causa y procesá la cola gradualmente.

Optimizar la base de datos

Consultas sin índices, tablas grandes y opciones autoload excesivas mantienen procesos PHP abiertos durante más tiempo. Revisá consultas lentas, tamaño de tablas y crecimiento de logs o sesiones.

Una operación de “optimizar todas las tablas” no reemplaza el diagnóstico. Puede bloquear tablas y no solucionará una consulta mal diseñada. Realizá un backup antes de modificaciones estructurales.

Controlar bots y tráfico abusivo

Los bots pueden concentrarse en búsquedas internas, páginas inexistentes, XML-RPC, formularios o URLs con parámetros costosos. Revisá IP, agente de usuario, ruta y frecuencia. Aplicá rate limiting o desafíos únicamente sobre el patrón observado.

No bloquees buscadores legítimos ni países completos sólo porque existe carga alta. Una regla demasiado amplia puede reducir tráfico válido sin resolver el endpoint costoso.

Reprogramar tareas pesadas

Backups, escaneos, importaciones y generación de miniaturas consumen recursos aunque no haya visitantes. Evitá ejecutar varias tareas al mismo tiempo y no programes procesos intensivos cada minuto si no es necesario.

Una tarea anterior que no finalizó puede superponerse con la siguiente. Utilizá bloqueos, tiempos máximos y registros para impedir ejecuciones simultáneas.

Optimizar imágenes y archivos

Imágenes gigantes aumentan transferencia y trabajo de procesamiento. Subilas con dimensiones cercanas a las que se mostrarán y generá miniaturas en períodos de baja actividad. No regeneres todas las imágenes en cada visita.

Archivos de caché, sesiones y logs excesivos también aumentan I/O e inodos. Si la cuenta acumula miles de elementos, revisá qué son los inodos en hosting.

Diferenciar tráfico legítimo de una falla

Si el consumo crece junto con ventas, usuarios o visitas reales y la aplicación ya está optimizada, ampliar recursos es razonable. Si el mismo pico ocurre sin tráfico o comenzó después de una actualización, primero investigá código y tareas.

Los errores 508, 503 o 500 pueden coincidir con límites, pero también tienen otras causas. Confirmá la métrica y el registro antes de atribuirlos a CPU o memoria.

Cuándo migrar a un plan superior o VPS

Considerá una ampliación cuando:

  • el sitio optimizado alcanza límites de manera sostenida por tráfico legítimo;
  • necesitás procesos persistentes o software no disponible en compartido;
  • las tareas requieren ventanas de CPU o memoria mayores;
  • necesitás configuración del servidor o aislamiento adicional.

Un VPS ofrece control, pero también requiere administración, seguridad, actualizaciones y monitoreo. No es una solución automática para una aplicación ineficiente.

Datos útiles para solicitar soporte

Indicá dominio, hora del evento, captura del historial de recursos, URL afectada, cambios recientes y pasos para reproducirlo. Si existe un error, incluí el texto completo y el registro relacionado. Con esa información se puede distinguir una limitación real de un problema de aplicación.

La optimización efectiva sigue una secuencia: medir, correlacionar, corregir y volver a medir. Sólo después conviene decidir si el consumo representa una falla o la necesidad legítima de mayor capacidad.