Cuando las aplicaciones que tienes en el alojamiento generan un alto consumo de recursos del servidor, puede afectar al resto de webs alojadas en la misma máquina.

Es por esta razón que, cuando los técnicos de cdmon detectan estos consumos, te informan de ello a través de un mensaje de correo.

En este mensaje, normalmente se incluyen unos registros que pueden ser un poco difíciles de interpretar si no estás familiarizados con ellos.

A continuación intentaremos resolver las dudas que te puedan surgir cuando recibes uno de estos correos.


1.- ¿Qué significa exceso de consumo?
Un exceso de consumo sucede cuando un alojamiento está utilizando más recursos del servidor de los que le corresponderían. Esto perjudica al rendimiento de la máquina y afecta al resto de alojamientos que tiene alojadas.

Uno de los muchos mantenimientos que realizan los técnicos de cdmon es la de monitorizar los niveles de carga de los servidores para poder garantizar su correcto funcionamiento y estabilidad.

En ocasiones, se detectan anomalías en las gráficas de rendimiento de los servidores. Por ejemplo, y como mostramos en la siguiente gráfica, el consumo de CPU ha aumentado de manera anómala. Estas capturas son ejemplos en servidores de prueba:


 

O en la siguiente gráfica de procesos también se aprecia el consumo:


 

Una vez detectado este aumento de consumo se procede a identificar qué alojamiento es el responsable de este consumo.

En los registros de consumo del servidor es donde los técnicos de cdmon encuentran el alojamiento que lo está causando:

 

28938 www-data 20 0 719m 236m 69m R 117.6% 0.9% apache2 - 95.120.71.160 example.com GET /wp-admin/admin-ajax.php?action=slideshow_jquery_image_gall
32196 www-data 20 0 672m 131m 11m R 117.6% 0.5% apache2 - 81.184.3.44 example.com POST /wp-admin/admin-ajax.php
12691 www-data 20 0 710m 210m 52m S 120.3% 0.8% apache2 - 188.165.15.90 example.com GET /carro-de-la-compra?qty=1&id_product=87a8s&add
17176 www-data 20 0 735m 282m 95m R 121.8% 1.1% apache2 - 81.184.156.66 example.com POST /wp-admin/admin-ajax.php
18345 www-data 20 0 721m 223m 48m R 121.8% 0.9% apache2 - 81.184.156.66 example.com GET /es/
29908 www-data 20 0 715m 192m 24m R 123.4% 0.8% apache2 - 188.165.15.43 example.com GET /descargas/34-catalogo/precios.html
29911 www-data 20 0 730m 208m 25m R 123.4% 0.8% apache2 - 157.55.39.93 example.com GET /shop/index.php
19576 www-data 20 0 710m 223m 66m S 124.3% 0.9% apache2 - 157.55.39.113 example.com GET /visitar/visita-ruta-del-vino/
18617 www-data 20 0 732m 240m 60m R 134.1% 1.0% apache2 - 38.99.97.100 example.com GET /en/gateways/activities/
26318 www-data 20 0 993m 298m 134m R 142.0% 1.2% apache2 - 83.34.234.252 example.com GET /
26317 www-data 20 0 1009m 314m 136m R 156.2% 1.3% apache2 - 181.124.104.143 example.com GET /alegria/mundial/
17451 www-data 20 0 730m 244m 66m R 189.4% 1.0% apache2 - 37.252.227.118 example.com GET /democms/
23544 www-data 20 0 719m 235m 63m R 205.1% 0.9% apache2 - 157.55.39.200 example.com GET /es/pagina-pruebas/
20810 www-data 20 0 738m 250m 60m D 220.5% 1.0% apache2 - 178.255.104.154 example.com GET /es/pagina-pruebas/?gclid=COXuicOE7sUCFSnMt
27942 www-data 20 0 696m 178m 28m D 230.7% 0.7% apache2 - 178.255.104.154 example.com GET /es/pagina-pruebas/?gclid=CKiTw8OE7sUCFU3Ht
9899 www-data 20 0 717m 256m 85m S 259.0% 1.0% apache2 - 186.12.225.146 example.com GET /precomposed.png
12693 www-data 20 0 724m 226m 53m R 317.2% 0.9% apache2 - 37.252.227.118 example.com GET /democms/
5007 www-data 20 0 725m 298m 121m R 326.3% 1.2% apache2 - 68.180.229.54 example.com GET /index.php/legislaciones/doc_details/

 

Estos mismos registros son los que t facilitan por correo.


2.- Explicación de los registros de consumo

Cuando el consumo que se produce es por PHP, los registros que recibes son como los mostrados anteriormente. A continuación detallamos su significado:

 

32196 www-data 20 0 672m 131m 11m R 117.6% 0.5% apache2 - 81.184.3.44 example.com POST /wp-admin/admin-ajax.php

 

De toda la línea de registro, lo que más interesa son los siguientes valores:

  • 117.6 % pertenece al % de CPU que sólo ese proceso estaba consumiendo.
  • 81.184.3.44 pertenece a la IP que lo estaba ejecutando. Esto es muy útil si siempre se repite una misma IP. Significa que desde esa dirección se está realizando la acción que genera el consumo.
  • POST /wp-admin/admin-ajax.php se trata de la acción y sobre que URL del dominio se estaba ejecutando.

 

Toda esta información nos puede ayudar a determinar qué está generando el consumo en el alojamiento.


3.- Cómo lo puedes corregir

Las causas del consumo siempre están relacionadas con los procesos que ejecutan las aplicaciones instaladas en el alojamiento. Por ejemplo, puede ser debido a una actualización del catálogo de la tienda en PrestaShop, o un proceso de copias de seguridad de WordPress.

Si en las URL que te han facilitado aparecen archivos de estos procesos concretos, ya sabes por dónde empezar a revisar. Puedes revisar si estas operaciones realizadas desde la web tienen alguna opción de configuración, o si se pueden fraccionar.

En caso de no haber realizado ninguna acción concreta, si se trata de un CMS, siempre es aconsejable desinstalar cualquier plugin y tema que esté instalado pero que no se esté utilizando. Dejando sólo los complementos necesarios y quitando los prescindibles ayuda a mejorar el rendimiento de la web.

Otra posibilidad, puede ser debida a haber instalado recientemente un nuevo plugin o complemento.

Repasar lo que has hecho en el alojamiento los últimos días puede ayudar para saber qué puede haber generado el aumento de consumo de recursos.


Ejemplos de consumo

Consumo genérico WordPress (admin-ajax.php)

 

28938 www-data 20 0 719m 236m 69m R 117.6% 0.9% apache2 - 81.184.156.66 example.com GET /wp-admin/admin-ajax.php
32196 www-data 20 0 672m 131m 11m R 117.6% 0.5% apache2 - 81.184.156.66 example.com POST /wp-admin/admin-ajax.php
17176 www-data 20 0 735m 282m 95m R 121.8% 1.1% apache2 - 81.184.156.66 example.com POST /wp-admin/admin-ajax.php


Un consumo común generado por un WordPress se trata de la ejecución constante de uno de sus propios archivos, admin-ajax.php. Este script suele ejecutarse de manera constante y se puede llegar a controlar modificando el código del propio WordPress. Tienes más detalles en el siguiente enlace. Por otro lado, el plugin Heartbeat Control también puede ayudar para reducir el consumo de la ejecución del admin-ajax.php. 

 

Consumo cron de WordPress (wp-cron.php)

 

3499 www-data 20 0 712m 187m 25m R 65.0% 0.7% apache2 - 134.0.10.24 example.com POST /wp-cron.php?doing_wp_cron=1433148901.94987392425537109375
17047 www-data 20 0 1021m 312m 123m R 86.3% 1.2% apache2 - 134.0.10.24 example.com POST /wp-cron.php?doing_wp_cron=1433132703.16476702690124511718
27940 www-data 20 0 705m 182m 24m S 107.7% 0.7% apache2 - 134.0.10.24 example.com POST /wp-cron.php?doing_wp_cron=1433145902.30797410011291503906
3440 www-data 20 0 700m 165m 16m S 114.8% 0.7% apache2 - 134.0.10.24 example.com POST /wp-cron.php?doing_wp_cron=1433167216.50882005691528320312

 

Consumo generado por el cron interno de WordPress. Siempre aparece que proviene de la misma IP, que es la IP de tu alojamiento.
También puede tratarse modificando la configuración del WordPress. Tienes más detalles en el siguiente enlace.

 

Consumo que proviene de una misma IP

 

21738 www-data 20 0 648m 186m 81m R 173.6% 0.7% apache2 - 85.58.219.88 example.com GET /inscripciones/index.php?option=com_virtuemart&nosef=1&v

24388 www-data 20 0 646m 170m 67m S 245.1% 0.7% apache2 - 85.58.219.88 example.com GET /inscripciones/index.php?option=com_virtuemart&nosef=1&v
22627 www-data 20 0 645m 192m 90m R 255.3% 0.8% apache2 - 85.58.219.88 example.com GET /inscripciones/index.php?option=com_virtuemart&nosef=1&v
22470 www-data 20 0 684m 222m 81m R 260.4% 0.9% apache2 - 85.58.219.88 example.com GET /inscripciones/index.php?option=com_virtuemart&nosef=1&v


En este caso el consumo lo genera una misma acción que proviene de una única IP. En estos casos puede ser que estés trabajando con tu web y realizando alguna acción que está generando un alto consumo de recursos. Algunos casos en los que puede ocurrir, es cuando actualizas el catálogo de tu tienda online, o cuando ejecutas acciones que hacen operaciones masivas en la base de datos. En el ejemplo puede apreciar el componente de tienda Virtuemart de un Joomla.

 

Consumo por un plugin o módulo nuevo

 

31343 www-data 20 0 711m 219m 59m S 100.0% 0.9% apache2 - 81.184.161.156 example.com GET /wp-content/plugins/all-in-one-event-calendar/app/view/admi
31395 www-data 20 0 674m 125m 2068 S 90.0% 0.5% apache2 - 81.184.161.156 example.com GET /wp-content/plugins/all-in-one-event-calendar/app/view/admi
31343 www-data 20 0 711m 219m 59m S 98.0% 0.9% apache2 - 81.184.161.156 example.com GET /wp-content/plugins/all-in-one-event-calendar/app/view/admi


Otro caso bastante común es la de recibir el correo de exceso de consumo poco después de haber habilitado un plugin o complemento nuevo en tu web. En el caso del ejemplo puedes ver como el plugin all-in-one-event-calendar es el que realiza el exceso de consumo. Cuando se producen estas situaciones, primero tienes que revisar si el plugin necesita de ciertos requisitos del servidor y también revisar sus opciones de configuración. En estos casos también es muy aconsejable consultar con el soporte del creador del plugin para que te pueda asesorar.

 

Consumo por bots de Google

El acceso continuado de los robots de los buscadores también puede causar un aumento del consumo del alojamiento. En estos casos puedes configurar el archivo robots.txt en tu alojamiento para limitar estos accesos y reducir este consumo. En el siguiente enlace tienes más información sobre este archivo y como configurarlo

En caso que se traten de bots de Google, te aconsejamos que accedas a las 'Herramientas para Webmasters' de Google donde puedes dar instrucciones de rastreo de los bots a tu página web. En esta aplicación de Google puedes reducir la frecuencia de rastreo para estabilizar el número de accesos a la web, http://www.google.com/webmasters/.

 

Consumo por mysql

 

| 32472 | mysqluser | localhost | basededatos | Query | 0 | Sending data | SELECT t.data AS realdata, i.data FROM search_data t LEFT JOIN search_index i ON t.data = i.data WH |
| 45093 | mysqluser | localhost | basededatos | Query | 1 | Sending data | SELECT t.data AS realdata, i.data FROM search_data t LEFT JOIN search_index i ON t.data = i.data WH |
| 48472 | mysqluser | localhost | basededatos | Query | 8 | Sending data | SELECT t.data AS realdata, i.data FROM search_data t LEFT JOIN search_index i ON t.data = i.data WH |
| 58093 | mysqluser | localhost | basededatos | Query | 1 0| Sending data | SELECT t.data AS realdata, i.data FROM search_data t LEFT JOIN search_index i ON t.data = i.data WH |

 

Las aplicaciones que tienes instaladas en la web suelen utilizar bases de datos en MySQL y depende de qué sentencias MySQL se ejecuten pueden generar un alto consumo de recursos del servidor. En estos casos tienes que revisar las sentencias que se ejecutan y tratar de optimizarlas. Puede ayudar tener la base de datos bien indexada y evitar tener tablas con millones de registros. En el ejemplo indicado, repetidas select con left join causan el exceso de consumo.

 

Un alojamiento puede generar un exceso de consumo por muchas razones, el tipo de aplicación instalada, los plugins y complementos, incluso las visitas. En cualquier caso, si consideras que tu web está totalmente optimizada y el consumo que genera es normal, deberías pasar a un plan superior. En esta situación contacta con nosotros para que podamos asesorarte e indicarte el plan oportuno para tu consumo.

 

Para más información, puedes contactar con nosotros.