Quan les aplicacions que tens a l'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 estàs familiaritzats amb ells.
A continuació intentarem resoldre els dubtes que puguin sorgir quan reps 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:
O en la següent gràfica de processos també s'aprecia el consum:
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 reps són com els mostrats anteriorment. A continuació en detallem el seu significat:
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 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ò 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ó et pot ajudar a determinar què està generant el consum en el teu hosting.
3.- Com ho pots 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 teva botiga en PrestaShop, o un procés de còpies de seguretat del teu WordPress.
Si en l'URL que t'han facilitat, apareixen fitxers d'aquests processos concrets, ja sabràs per on començar a revisar. Pots 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 s'ha fet en l'allotjament els últims dies 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. Tenis més detalls en el següent enllaç. Per altra banda, el plugin Heartbeat Control també 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 de l'allotjament.
També pot gestionar-se modificant la configuració del WordPress. Tens 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 estiguis treballant amb la teva web i realitzant alguna acció que està generant un alt consum de recursos. Alguns casos en els quals pot passar és quan actualitzes el catàleg de la botiga online o quan executes 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 web. En el cas de l'exemple pots veure com el plugin all-in-one-calendar és el que realitza l'excés de consum. Quan es produeixen aquestes situacions, primer has 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è et 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 pots configurar l'arxiu robots.txt en el teu 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, aconsellem que accedeixis a les 'Eines per a Webmasters' de Google on pots donar instruccions de rastreig dels bots a la teva pàgina web. En aquesta aplicació de Google pots reduir la freqüència de rastreig per estabilitzar el nombre d'accessos a la teva 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.
L'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 consideres que la teva web està totalment optimitzada i el consum que genera és normal, hauries de passar a un pla superior. En aquesta situació, contacta amb nosaltres perquè puguem assessorar-te i indicar-te el pla adequat per al teu consum.
Per a més informació, pots contactar amb nosaltres.