Quan les aplicacions que tenim al nostre allotjament generen un alt consum de recursos del servidor, pot afectar la resta de webs allotjades en la mateixa màquina. És per aquesta raó que, quan els tècnics de CDmon detecten aquests consums, ens informen a través d'un missatge de correu.

En aquest missatge, normalment s'inclouen uns registres que poden ser una mica difícils d'interpretar si no estem familiaritzats amb ells.

A continuació intentarem resoldre els dubtes que ens puguin sorgir quan rebem un d'aquests correus.


1.- ¿Què significa excés de consum?

Un excés de consum succeeix quan un allotjament està utilitzant més recursos del servidor dels que li correspondrien. Això perjudica el rendiment de la màquina i afecta la resta d'allotjaments que té allotjats.

Un dels molts manteniments que realitzen els tècnics de CDmon és el de monitorar els nivells de càrrega dels servidors per poder garantir el seu correcte funcionament i estabilitat.

A vegades, es detecten anomalies en les gràfiques de rendiment dels servidors. Per exemple, i com es mostra en la següent gràfica, el consum de CPU ha augmentat de manera anòmala. Aquestes captures són exemples en servidors de prova:

Consum_02.png

 

O en la següent gràfica de processos també s'aprecia el consum:

Consum_03.png

 

Una vegada detectat aquest consum, es procedeix a identificar quin allotjament és el responsable d'aquest consum.

En els registres de consum del servidor és on els tècnics de CDmon troben l'allotjament que ho està causant:

 

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/

 

Aquests mateixos registres són els que ens faciliten per correu.


2.- Explicació dels registres de consum

Quan el consum que es produeix és per PHP, els registres que rebrem són com els mostrats anteriorment. A continuació en detallem el seu significat:

 

Exemple: 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 tota la línia de registre, el que més ens interessa són els següents valors:

117,6 % pertany al % de CPU que estava consumint només aquest procés.

81.184.3.44 pertany a la IP que l'estava executant. Això ens resulta molt útil si sempre es repeteix una mateixa IP. Significa que des d'aquesta direcció s'està realitzant l'acció que genera el consum.

POST /wp-admin/admin-ajax.php es tracta de l'acció i sobre quina URL del domini s'estava executant.

 

Tota aquesta informació ens pot ajudar a determinar què està generant el consum en el nostre hosting.


3.- Com ho podem corregir

Les causes del consum sempre estan relacionades amb els processos que executen les aplicacions instal·lades a l'allotjament. Per exemple, pot ser degut a una actualització del catàleg de la nostra botiga en PrestaShop, o un procés de còpies de seguretat del nostre WordPress.

Si en la URL que ens han facilitat, apareixen arxius d'aquests processos concrets, ja sabrem per on començar a revisar. Podem revisar si aquestes operacions realitzades des de la web tenen alguna opció de configuració, o si es poden fraccionar.

En cas de no haver realitzat cap acció concreta, si es tracta d'un CMS, sempre és aconsellable desinstal·lar qualsevol plugin i tema que estigui instal·lat però que no s'estigui utilitzant. Deixant només els complements necessaris i treure els prescindibles ajuda a millorar el rendiment de la web.

Una altra possibilitat, pot ser deguda a haver instal·lat recentment un nou plugin o complement.

Repassar el que hem fet en l'allotjament els últims dies ens pot ajudar a saber què pot haver generat l'augment de consum de recursos.


Exemples de consum

Consum genèric 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 consum comú generat per un WordPress es tracta de l'execució constant d'un dels seus propis arxius, admin-ajax.php. Aquest script sol executar-se de manera constant i es pot arribar a controlar modificant el codi del mateix WordPress. Tenim més detalls en el següent enllaç. Per altra banda, el plugin Heartbeat Control també ens pot ajudar a reduir el consum de l'execució del admin-ajax.php.

 

Consum 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

 

Consum generat pel cron intern de WordPress. Sempre apareix que prové de la mateixa IP, que és la IP del nostre allotjament.
També pot gestionar-se modificant la configuració del WordPress. Tenim més detalls en el següent enllaç.

 

Consum que prové d'una mateixa 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 aquest cas el consum el genera una mateixa acció que prové d'una única IP. En aquests casos pot ser que estiguem treballant amb la nostra web i realitzant alguna acció que està generant un alt consum de recursos. Alguns casos en els quals pot passar és quan actualitzem el catàleg de la nostra botiga online o quan executem accions que fan operacions massives en la base de dades. En l'exemple apreciem el component de la botiga Virtuemart de Joomla.

 

Consum per un plugin o mòdul nou

 

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


Un altre cas bastant comú és el de rebre el correu d'excés de consum poc després d'haver habilitat un plugin o complement nou a la nostra web. En el cas de l'exemple podem veure com el plugin all-in-one-calendar és el que realitza l'excés de consum. Quan es produeixen aquestes situacions, primer hem de revisar si el plugin necessita certs requisits del servidor i també revisar les seves opcions de configuració. En aquests casos també és molt aconsellable consultar amb el suport del creador del plugin perquè ens pugui assessorar.

 

Consum per bots de Google

L'accés continuat dels robots dels buscadors també poden causar un augment del consum de l'allotjament. En aquests casos podem configurar l'arxiu robots.txt en el nostre allotjament per limitar aquests accessos i reduir-ne el consum. En el següent enllaç tenim més informació sobre aquest arxiu i com configurar-lo

En cas que es tracti de bots de Google, li aconsellem que accedeixi a les 'Eines per a Webmasters' de Google on podem donar instruccions de rastreig dels bots a la nostra pàgina web. En aquesta aplicació de Google podem reduir la freqüència de rastreig per estabilitzar el nombre d'accessos a la nostra web, http://www.google.com/webmasters/.

 

Consum per 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 |

 

Les aplicacions que tenim instal·lades en la web solen utilitzar bases de dades MySQL i depenent de quines sentències MySQL s'executin, poden generar un alt consum de recursos del servidor. En aquests casos hem de revisar les sentències que s'executen i mirar d'optimitzar-les. Pot ajudar el fet de tenir una base de dades ben indexada i evitar taules amb milions de registres. En l'exemple indicat, repetides 'select' amb 'left join' causen l'excés de consum.

El nostre allotjament pot generar un excés de consum per moltes raons, el tipus d'aplicació instal·lada, els plugins i complements, fins i tot les visites. En qualsevol cas, si considerem que la nostra web està totalment optimitzada i el consum que genera és normal, hauríem de passar a un pla superior. En aquesta situació, contacti amb nosaltres perquè puguem assessorar-lo i indicar-li el pla adequat per al seu consum.

 

Per a més informació, podeu contactar amb nosaltres.

Quan les aplicacions que tenim al nostre allotjament generen un alt consum de recursos del servidor, pot afectar la resta de webs allotjades en la mateixa màquina. És per aquesta raó que, quan els tècnics de CDmon detecten aquests consums, ens informen a través d'un missatge de correu.

En aquest missatge, normalment s'inclouen uns registres que poden ser una mica difícils d'interpretar si no estem familiaritzats amb ells.

A continuació intentarem resoldre els dubtes que ens puguin sorgir quan rebem un d'aquests correus.