Tu sitio se ha vuelto lento, o los visitantes ven un error 503 Resource Limit Reached. Lo primero que se te ocurre es culpar al servidor o contratar un plan más grande. En un hosting compartido, la causa suele estar dentro de tu aplicación, y puedes encontrarla tú mismo en pocos minutos con herramientas que ya tienes en cPanel.
Puntos clave
- Cada cuenta de hosting compartido y de reseller de WebGee funciona en su propio LVE de CloudLinux con límites fijos de CPU, E/S, procesos de entrada y memoria.
- Los límites de CPU y E/S hacen que un sitio vaya lento, mientras que los límites de procesos de entrada y de memoria provocan errores 503 Resource Limit Reached.
- Los procesos de entrada cuentan las solicitudes que se están atendiendo en el mismo instante, así que una página lenta alcanza el límite con muchos menos visitantes que una rápida.
- Resource Usage de cPanel y sus snapshots te indican qué límite se alcanzó y qué procesos lo provocaron; PHP X-Ray muestra en qué se va el tiempo dentro de una solicitud.
- La caché, la revisión de plugins y la corrección de las tareas cron van antes que una ampliación de plan, porque ampliar sube el techo sin arreglar lo que lo está consumiendo.
Antes de empezar
- Inicia sesión en cPanel con la cuenta afectada.
- Anota aproximadamente cuándo se produjeron la lentitud o los errores 503.
- Averigua tu dirección IP actual, para que PHP X-Ray rastree solo tus visitas.
- Si usas Bolt-Cache, prepárate para cambiar el sitio al modo Proxy mientras haces el rastreo.
Tu cuenta funciona en su propio contenedor
Cada cuenta de hosting compartido y de reseller de WebGee funciona dentro de su propio Lightweight Virtual Environment (LVE), un contenedor de CloudLinux con límites de recursos fijos. Si una cuenta ejecuta un script descontrolado o sufre un ataque, se le limitan los recursos o se detienen sus procesos, y el resto de cuentas sigue funcionando con normalidad. Los límites existen para que el problema de otro nunca se convierta en el tuyo.
Salvo que tu plan indique otra cosa, cada cuenta dispone de:
- CPU: 1 núcleo
- Memoria: 1 GB
- Procesos de entrada: 30 simultáneos
Consulta la explicación completa en Los límites de CloudLinux y LVE explicados.
Relaciona el síntoma con el límite
Cada límite se comporta de forma distinta cuando lo alcanzas, y eso te indica dónde buscar:
- CPU: el sitio va más lento, pero las solicitudes se completan.
- E/S: el sitio va más lento, sobre todo en todo lo que usa mucho el disco.
- Procesos de entrada (EP): un error 503, porque las solicitudes se detienen de golpe.
- Memoria física (PMEM): un error 503, o el proceso se detiene.
Los límites de CPU y E/S degradan tu sitio; los de procesos de entrada y memoria lo rompen. Un sitio lento está chocando con un límite distinto al de uno que devuelve errores 503.
Por qué los sitios lentos se quedan sin procesos de entrada
Un proceso de entrada es una solicitud que se está atendiendo en ese momento dentro de tu cuenta. El límite indica cuántas pueden ejecutarse en el mismo instante, no por hora ni por visitante. Una solicitud PHP suele terminar en una fracción de segundo, y su hueco queda libre en cuanto lo hace.
El problema es que cuanto más tarda cada solicitud, menos visitantes hacen falta para alcanzar el límite. Una página que tarda 5 segundos ocupa su hueco 25 veces más que una que tarda 200 ms. En cuanto las solicitudes empiezan a hacer cola, las páginas van aún más lentas y ocupan sus huecos todavía más tiempo. Ese círculo vicioso explica por qué los sitios suelen fallar de repente y no de forma gradual.
El kernel termina las solicitudes que superan el límite con SIGKILL, y el visitante ve el error 503. Los desencadenantes habituales son tareas de larga duración:
- Una tarea cron que tarda minutos y se ejecuta cada minuto
- WP-Cron ejecutándose al cargar las páginas
- Un plugin que hace una llamada lenta a una API externa en cada solicitud
- Una consulta a la base de datos sin índice
Tienes más detalles en Qué son los procesos de entrada.
Una alerta de recursos no es una suspensión Si WebGee te envía un correo diciendo que tu cuenta ha alcanzado sus límites de recursos, no se ha suspendido nada. La alerta existe para que te enteres de un problema de rendimiento por nosotros y no por un cliente. Las alertas ocasionales no conllevan ninguna medida; los casos persistentes que afectan a la estabilidad del servidor se tratan de forma individual.
Averigua qué límite has alcanzado
Empieza en cPanel → Resource Usage. Ahí verás qué límite se alcanzó, cuándo y qué se estaba ejecutando en ese momento.
- En cPanel, abre Resource Usage.
- Selecciona el periodo que abarque la lentitud, los errores 503 o el correo de alerta.
- Comprueba qué límite se alcanzó: CPU, E/S, procesos de entrada o memoria.
- Abre el snapshot de ese momento. Muestra los procesos responsables.
El snapshot es lo que convierte un síntoma en una causa. Si los fallos se concentran a una hora concreta, revisa a continuación cPanel → Cron Jobs, porque una tarea pesada con una programación muy frecuente es una causa habitual.
Consulta Has recibido una alerta de uso de recursos y Soluciona un error 503 Resource Limit Reached para ver el proceso completo.
Rastrea las solicitudes lentas con PHP X-Ray
Resource Usage te dice qué límite; PHP X-Ray te dice en qué se va el tiempo dentro de una solicitud. Rastrea solicitudes reales y desglosa cada una, así que dejas de adivinar si el problema es un plugin, una consulta a la base de datos o una llamada externa. Está disponible en el hosting compartido, de reseller y Premium.
- En cPanel, abre X-Ray.
- Selecciona el dominio o subdominio que quieres rastrear.
- Introduce tu propia dirección IP, configura entre 10 y 20 solicitudes a recoger y elige un intervalo de tiempo lo bastante largo para reproducir la lentitud.
- Inicia el rastreo y visita varias veces la página lenta en tu navegador.
- Abre el rastreo recogido cuando se llene la columna Collected Requests.
Busca lo siguiente, más o menos en orden de frecuencia como causa:
- Una consulta lenta a la base de datos repetida muchas veces, normalmente un plugin que consulta dentro de un bucle. La caché de objetos suele resolverlo directamente.
- Una llamada HTTP externa lenta, como un plugin que contacta con un servidor de licencias o una API. La página no puede terminar hasta que esa llamada responde.
- Un plugin que acapara la mayor parte del tiempo total. Desactívalo y vuelve a rastrear para confirmarlo.
Tienes capturas de pantalla paso a paso en Descubre qué está ralentizando tu sitio.
X-Ray necesita el modo Proxy X-Ray solo recoge datos cuando Bolt-Cache está desactivado y tus sitios usan el modo Proxy. Con Bolt-Cache activado, el rastreo queda vacío, que es el motivo más habitual por el que la gente cree que X-Ray no funciona. Si la página se sirve desde la caché, añade ?xray=1 a la URL mientras haces pruebas.
No confundas memory_limit de PHP con el límite de tu cuenta
memory_limit limita cuánta memoria puede reservar un único script PHP. Se cambia en cPanel → Select PHP Version → Options (consulta Cambia tu versión y configuración de PHP). Subirlo tiene sentido para importaciones grandes, el procesamiento de imágenes en subidas de gran tamaño, una tienda WooCommerce con un catálogo amplio o una aplicación cuya documentación indique un requisito mayor.
No sube el límite de memoria de tu cuenta. Ese lo fija tu plan y es el que provoca los errores 503. Configurar memory_limit por encima de la asignación de tu cuenta no sirve de nada, porque el script se detiene igualmente al llegar al límite de la cuenta.
La carga normal de una página de WordPress cabe holgadamente en 128–256 MB. Si tu página de inicio necesita 1 GB, algo está cargando mucho más de lo que debería: un plugin que consulta sin límites, un bucle sin fin o el procesamiento de imágenes en cada solicitud en lugar de una sola vez al subirlas. Rastréalo con X-Ray antes de subir nada.
Para comprobar el valor que se aplica realmente, crea un archivo PHP que contenga <?php echo ini_get('memory_limit');, ábrelo en el navegador y luego elimínalo. Con Bolt-Cache, el PHP Selector se ignora y el valor procede de .user.ini. Más información en Entender los límites de memoria de PHP.
Reduce de nuevo el consumo
Arregla primero la aplicación. Estos pasos, en este orden, resuelven la mayoría de los casos:
- Activa la caché. Una página en caché nunca llega a PHP, así que nunca se convierte en un proceso de entrada. Empieza por LiteSpeed Cache y añade después la caché de objetos con Redis para el tráfico de usuarios con sesión iniciada y el área de administración.
- Revisa tus plugins. Desactívalos todos, espera un par de minutos y vuelve a activarlos de uno en uno mientras vigilas Resource Usage.
- Corrige tus tareas cron. WP-Cron se ejecuta al cargar las páginas, que es justo lo que no conviene cuando hay carga. Sustituye WP-Cron por una tarea cron real y alarga el intervalo de cualquier otra tarea pesada.
- Comprueba si hay tráfico anómalo. Los bots y scrapers consumen los mismos recursos que los clientes.
- Busca malware. Un sitio comprometido gasta recursos haciendo el trabajo de otro. Analiza tu sitio en busca de malware.
Detecta los problemas antes que tus visitantes
Site Quality Monitoring en cPanel comprueba la disponibilidad de un dominio cada hora y realiza cada semana un análisis completo de estado y rendimiento, en busca de enlaces rotos, metadatos que faltan, páginas lentas y contenido mixto. Está desactivado hasta que creas un proyecto:
- En cPanel, selecciona Site Quality Monitoring.
- Elige el Monitored domain e introduce una Email Address para las notificaciones.
- Marca la casilla de consentimiento y selecciona Create Project.
Usa una dirección que no esté alojada en la cuenta que se supervisa, o puede que una alerta de caída nunca te llegue. La monitorización ve lo mismo que un visitante, así que no puede decirte por qué una página va lenta. Si informa de caídas intermitentes, revisa Resource Usage, porque la causa suelen ser los límites de recursos y no una interrupción del servicio.
Tienes los detalles de configuración en Site Quality Monitoring.
Cuándo ampliar el plan es la respuesta correcta
Amplía solo después de diagnosticar. Una ampliación sube el techo sin abordar lo que está consumiendo los recursos, así que un plugin descontrolado simplemente consumirá más. Si el snapshot de Resource Usage muestra tráfico legítimo haciendo un trabajo legítimo, se pueden aumentar los límites, y para eso están los planes Elastic Cloud. Abre un ticket con tus datos de Resource Usage y WebGee te asesorará.
Preguntas frecuentes
¿Un error 503 Resource Limit Reached significa que el servidor está caído?
No. Significa que tu propia cuenta alcanzó uno de sus límites de recursos y se rechazaron solicitudes hasta que bajó el consumo. Las demás cuentas del servidor no se ven afectadas.
¿El límite de procesos de entrada es lo mismo que un límite de visitantes?
No. Limita cuántas solicitudes se están procesando en el mismo instante, y cada solicitud rápida ocupa su hueco solo un momento. Un sitio que sirve páginas en 200 ms puede atender a muchos más de 30 visitantes simultáneos sin acercarse a un límite de 30 procesos de entrada.
¿Subir memory_limit en Select PHP Version acabará con los errores 503?
No. memory_limit limita un único script PHP, mientras que los errores 503 se deben al límite de memoria de tu cuenta, que fija tu plan. Un script se detiene al llegar al límite de la cuenta, independientemente de memory_limit.
¿Por qué PHP X-Ray no recoge ninguna solicitud?
X-Ray solo recoge datos cuando Bolt-Cache está desactivado y tus sitios usan el modo Proxy. Comprueba también que has introducido tu dirección IP actual y añade una cadena de consulta como ?xray=1 para saltarte la caché de página mientras haces pruebas.