WordPress: Gestión de la memoria y los recursos

WordPress: Gestión de la memoria y los recursos

Por todos es sabido que WordPress es un CMS, y por lo tanto además de los ficheros que están ubicados en el espacio web correspondiente, y a los cuales podemos acceder a través del servicio FTP, también es necesaria una base de datos que conecte al CMS. Para que WordPress funcione esta base de datos debe comunicarse con el espacio web, y las consultas y la comunicación entre ambas partes debe ser lo más fluida posible.

Para una conexión correcta y segura de nuestro hosting hacia su propia base de datos wordpress ubicada en localhost, debemos tener cuidado con la cantidad de plugins que instalamos dentro del CMS, ya que cada plugin genera peticiones a esa base de datos, y por lo tanto está consumiendo recursos de nuestro hosting o servidor web. Si no controlamos la gestión de la memoria y los recursos, nuestro hosting o servidor web, puede verse afectado por:

  • Caidas del servicio mysql
  • Picos de carga en la memoria RAM
  • Exceso uso del procesador

En el caso de tener contratado para nuestra web un hosting, VPS o algo similar, los recursos de la máquina física son compartidos y limitados, por lo tanto debemos cuidar y economizar estos recursos. En el caso de que usemos un servidor físico dedicado resulta más complicado que se den este tipo de problemas, aunque un proceso “zombie” puede meterse en cola de procesos, y entrar en un bucle del que nunca saldrá, aumentando exponencialmente la carga de la RAM y pudiendo originar una caída del servicio. Esto viene siendo muy corriente en ataques Ddos o ataques por denegación de servicio.
Un ejemplo: el típico ataque a la vulnerabilidad de WordPress que intenta crear gran cantidad de usuarios a la vez, haciendo trabajar en exceso al mysql, hasta que el servicio se ve interrumpido y cae.

WordPress: Gestión de los recursos y vaciar memoria Ram

Lo suyo es tener instalado en un servidor externo un sistema de monitorización como Nagios, pero bueno, también nuestros proveedores de hosting suelen ofrecernos alguna alternativa bastante aceptable para recibir alertas por mail en caso de caidas de servicios: mysql, ssh, ftp, video streaming… o caída completa -> ping no responde.

Dentro del panel de control de nuestro hosting o servidor debe aparecer una monitorización en tiempo real de los recursos, pero si no es así también a través de nuestro cpanel o plesk podemos echar un vistazo a cómo están fluyendo los recursos de la máquina. En caso de observar algo extraño, accederemos por ssh para solucionarlo:

Paso a paso para vaciar la memoria y los recursos:

Vamos a ver como está el tema desde el monitorizador de nuestro proveedor de servicios y desde el plesk:
monitorizador ram

y ahora desde el plesk:
monitorizador ram plesk

Conozco este server, y la ram está bastante colapsada (46% de uso es demasiado para él, porque sólo hay dos WordPress funcionando aquí y tiene 32 gb de ram), debe existir algún proceso zombie, o algo no habitual. Para ver que está ocurriendo entramos en la máquina vía ssh, para ello abrimos una terminal y escribimos: ssh root@12.13.13.15 obviamente sustituyendo el 12.13.14.15 por la ip de vuestro server. (en estas capturas yo borro las ip’s para mantener la privacidad del host)

conexion ssh

A continuación ejecuto el comando: top para ver cuales son los procesos que me están consumiendo más Ram, y ya observamos que se asoma por aquí algo referente al mysql, pruebo hacer un: service mysqld restart, pero la cosa sigue igual así que vamos a probar otra solución diferente.

Monitorizo la ram desde la terminal para que efectivamente de 32gb de ram del server, casi la mitad esta siendo utilizada, lo que conociendo mi máquina me parece extraño:
Para ello ejecuto el comando: free -m y nos dice lo mismo que el plesk:
free -m

Bien pues vamos a proceder a vaciar la Ram del server con este comando:
vaciar ram

Ahora volvemos a ver la Ram utilizada y…Ta ta ta chan!!
free -m

Vamos al plesk para verificar que desde aquí todo esta OK también
monitorizador ram plesk

Solución | Prevención para caidas de WordPress

En esta ocasión el problema era la Ram, también podemos ver los procesos en ejecución con el ps aux, y matar aquellos que sean sospechosos, pero con cuidado lógicamente.
Los procesos se matan con el comando Kill + el número del proceso que el mismo ps aux te genera en pantalla.

Para mantener mejor la seguridad y los recursos de nuestro hosting a salvo ante posibles problemas con procesos y memoria, adjunto estas recomendaciones:

Si te gustó este artículo o te sirvió de ayuda por favor compártelo.
Un saludo,
Óscar / DevService
Por Óscar Carrillo