EL PROBLEMA Nº1 QUE MATA EL HOSTING PHP DE TU BLOG Y CÓMO SOLUCIONARLO - Guatemala Marketing
 

EL PROBLEMA Nº1 QUE MATA EL HOSTING PHP DE TU BLOG Y CÓMO SOLUCIONARLO

EL PROBLEMA Nº1 QUE MATA EL HOSTING PHP DE TU BLOG Y CÓMO SOLUCIONARLO

Hoy en día, cuando alguien quiere crear una web, es muy raro que no pase por utilizar para ello alguna de las aplicaciones estrella del software libre como, por ejemplo, WordPress para un blog,Joomla como sistema de gestión de contenidos, PrestaShop para una tienda online o phpBBpara un foro de discusión.

Estas aplicaciones han sido una auténtica revolución por ser software libre y gratuito, sus prestaciones y calidad, y por haber sido creadas con un lenguaje de programación que también es gratuito y software libre (PHP) y cuyo entorno natural es la combinación del sistema operativo Linux y el servidor web Apache, de nuevo software libre.

Aparte de no librar al usuario de gastarse dinero en el software, esto ha hecho que el coste delhosting de este tipo de aplicaciones también sea bastante bajo y la consecuencia natural ha sido una avalancha en todo el mundo de sitios web basados en aplicaciones PHP creados por usuarios “normales”.

problemas de un hosting php

Imagen de Fotolia – ©Alexandr MitiucPero no todo son luces, naturalmente también hay sombras y quizás la más grande sea que alojar una aplicación PHP es mucho más exigente para los servidores y también en su administración que una simple web “tradicional” basada únicamente en páginas HTML estáticas.

Un blog en WordPress es un ejemplo perfectamente representativo de este problema y extrapolable a cualquier otra aplicación PHP.

En este post del blog de Víctor Martín puedes hacerte una idea global de cuáles son esos retos en general y en el post de hoy voy a profundizar en los retos que pueden echar abajo el rendimiento de tu hosting PHP hasta un punto que te resulte realmente insoportable (extrema lentitud, caídas continuas, etc.) y cómo superarlos.

De hecho, si ya has montado un blog WordPress con hosting y gozas de cifras de tráfico importantes (1000 visitas o más al día) es muy posible que ya estés empezando a notar estos efectos, pero probablemente no los hayas diagnosticado correctamente.

Así que en este post trataré de que entiendas el fondo de la problemática que explica por qué llegado a un cierto umbral de tráfico, el rendimiento de una aplicación PHP en un hosting puede caer en picado, y te señalaré el camino hacia las soluciones.

En los ejemplos me centraré en WordPress para ser más concreto, pero como decía, la problemática es totalmente extrapolable a cualquier otra aplicación PHP como Joomla, phpBB,Prestashop y similares.

CUANDO TU HOSTING PHP NO TIENE LA CULPA

Generalmente cuando aparecen los problemas de rendimiento de los que habla este post, el diagnóstico del usuario es claro: la culpa es de mi hosting que es malo o que ha llegado al límite de su capacidad.

Si bien es cierto que la elección del hosting PHP es crítica para el rendimiento de tu blog, que el mercado del hosting está lleno de piratillas y que, por tanto, hay que saber qué se contrata, también es cierto que se echa muchísimas veces la culpa directamente al hosting cuando éste no tiene nada que ver con los problemas de rendimiento de la aplicación.

La mayoría de los problemas de rendimiento del día a día en un hosting con PHP se pueden reducir en un único problema de fondo que hay que entender bien: que al acceder a las páginas de la web se ejecute código PHP cuando no debería ejecutarse.

Si entiendes bien este problema y sabes diagnosticarlo con certeza (que no es muy difícil como verás más abajo en este post) habrás dado un gran paso porque ya entenderás exactamente lo que está pasando en tu sitio que es la condiciones sine qua non para poder erradicar el problema.

Quizás te resulte demasiado complicado meterte tú mismo con las configuraciones y ajustes necesarios para solucionarlo, pero ya estás preparado para plantearlo al servicio técnico de tu proveedor si cubre aspectos de mantenimiento de la aplicación en cuestión (WordPress, Joomla, etc.), o bien, a un profesional que te ayude con ello.

Recuerda que existen marketplaces como oDesk o Elance con una oferta gigante de profesionales de este tipo y que a través de nuestro formulario de contacto nosotros también te podemos poner en contacto con estos profesionales.

POR QUÉ UN HOSTING SUFRE TANTO CON LAS EJECUCIONES INNECESARIAS DE PHP

WordPress, al igual que el CMS Joomla o el software de foros de discusión phpBB, ha sido creado con el lenguaje de programación PHP y almacena sus contenidos en una base de datos MySQLcon la que interactúa para prácticamente cualquier acción en el sitio (cargar una página, guardar un comentario, etc.).

blog WordPress con hosting optimizado

Tiempo de carga de página del blog Ciudadano 2.0 con la caché activada.

Si un diseño así sería prácticamente imposible crear unos productos tan sofisticados y completos como lo son estas aplicaciones. Pero todo tiene un precio y en este caso es que una web dinámica (no existen páginas HTML creadas a priori) supone mucho más carga para un servidor web que una web estática (que sólo se compone de ficheros estáticos HTML creados de antemano todos) puesto que en una aplicación PHP como las citadas, antes de que el servidor web entregue la página web al navegador del usuario ha de construirla en cada acceso desde un navegador web.

Construir una página web dinámica “sobre la marcha” le supone al servidor web acceder a la base de datos MySQL para recuperar los contenidos y ejecutar el código PHP para componer con esta información el HTML de la página que devuelve finalmente al navegador.

Todo esto requiere muchos más recursos de CPU y  memoria que si esta página HTML fuese estática, es decir, un simple fichero que existiese de antemano y que simplemente se descarga al navegador web del usuario. Además, si la aplicación usa plugins o extensiones similares, cuantos más use, más aumenta la cantidad de código PHP ejecutado y los accesos a la base de datos y con ello más la carga del servidor. De ahí que haya que tener cuidado con los plugins usados.

Con poco tráfico esto no es un gran problema, pero incluso para un hosting PHP potente que ya no sea un alojamiento web compartido básico, en un blog WordPress, por ejemplo, típicamente a partir de las 1000 visitas diarias esto empieza a ser un problema.

Pero, en realidad, el problema no lo es tanto el número de visitas al día, sino que el criterio realmente clave aquí es el patrón de tráfico: las visitas concurrentes(simultaneas).

Cada visita supone la ejecución de un proceso PHP que consume tiempo procesador y una determinada cantidad de memoria. Si se acumulan demasiadas visitas simultáneas, el servidor llegará a su límite de procesos y/o a su límite de memoria y la web dejará de funcionar. Por eso, el límite de memoria y de procesos son dos parámetros tan importantes en la contratación de un hosting PHP. Cuanto más holgados estos parámetros, más visitas concurrentes aguantará el servidor.

En ese sentido, un sitio web con 2.000 visitas al día, pero una distribución muy uniforme con muy poca concurrencia en las visitas, puede tener muchos menos problemas que sitio con 500, pero con picos de tráfico concurrentes muy pronunciados. Un poco más abajo veremos que es casi seguro que el origen de todos los males de tu sitio sea un patrón de este tipo, incluso aunque creas que no sufres picos de este tipo.

CÓMO DETECTAR QUE TIENES PROBLEMAS

Como es mejor prevenir que curar, te contaré ahora cómo puedes detectar que estás siendo afectado por un problema de exceso de acceso vía URLs parametrizadas. Este punto ya se vuelveun poco técnico, pero si te atreves, verás que se mantiene asequible.

MONITORIZA TU SERVIDOR WEB

Una señal de alarma muy clara es que empieces a tener caídas de corta duración de tu servidor (unos pocos minutos como mucho), provocadas por los picos de concurrencia. Estas caídas al principio normalmente van a pasar desapercibidas por su corta duración hasta que sean más severas, por eso te recomiendo  que uses una herramienta de monitorización con avisos automáticos como Pingdom para detectarlas. Así detectarás incluso caídas de un minuto. Este post te habla más en detalle de ella.

OBSERVA LOS PROCESOS PHP

La característica más clara para detectar que tienes un exceso de páginas que no se están sirviendo desde la caché es el monitor de procesos de tu hosting (si tu hosting lo tiene…). El problema es que tienes que pillar el problema “in flagranti”, justo en el momento que se produce.

captura procesos PHP cpanel

Los hostings con cPanel como Hostgator o Webempresa suelen incluir un widget como éste donde puedes ver fácilmente cuantos procesos PHP concurrentes se están ejecutando en un momento determinado.

Si detectas una caída o señales de lentitud en tu blog, entra en las herramientas de tu hosting y observa cuantos procesos de “index.php” aparecen. Incluso con muchas decenas de visitas, en una situación normal con un % normal de accesos con URLs parametrizadas no se deberían observar más de 4 o 5 procesosde “index.php” en paralelo, como mucho.

En el caso de que veas un número mayor es que probablemente algo va mal, te está llegando un tráfico concentrado de URLs parametrizadas anormal. Para que te hagas una idea, un hosting compartido de buena calidad suele tener un límite en torno a 20-25 de estos procesos, si se supera esta cifra, se caerá.

ANALIZA LOS LOGS DE APACHE

Por suerte, los servicios de hosting PHP te suelen permitir descargarte el log del servidor web que en cerca del 100% de los casos va a ser Apache. Ésta la mejor herramienta de diagnóstico de todas porque tiene la información más completa, puedes buscar fácilmente los patrones conflictivos y puedes ir atrás en el tiempo.

Es un fichero de texto que muestra el orden cronológico de los accesos que ha tenido tu sitio, contiene, entre otras cosas, la hora exacta de cada acceso, la URL de acceso utilizada y el país desde el cual se produjo el acceso.

Te sorprenderás cuando lo veas, entre otras cosas, porque verás la cantidad de tráfico no humano (bots) que tiene que soportar tu hosting si tu sitio web ya ha alcanzado cierta visibilidad.

La cuestión es que el log te permite buscar URLs parametrizadas y con patrones concretos. Por ejemplo, si buscas la cadena de texto “/?” puedes localizer todos los accesos con URLs parametrizadas y si hay momentos en los que se concentran muchos accesos y de dónde proceden. Si buscas “=twitterfeed” estaría filtran por URLs que han usado este parámetro.

Para ello te recomiendo muy encarecidamente la herramienta Apache Logs Viewer, dispones de una versión gratuita, pero te recomiendo encarecidamente que te gastes los 10€ que cuesta la versión de pago porque añade funcionalidad que hace todo este proceso mucho más cómodo.

CONCLUSIONES

Desgraciadamente el precio que pagas por el éxito de tu sitio cuando usas un hosting con PHP es el que conforme ganes en visibilidad garantizar el buen funcionamiento del hosting se vuelve cada vez más complicado.

Entre todos estos problemas destaca especialmente el problema del acceso con URLs parametrizadas por anular la caché de las páginas, un problemón que debido a la gran cantidad de tráfico de este tipo que generan los bots puede acabar con el rendimiento de tu sitio si no tomas medidas a tiempo.

Solucionar el problema correctamente, por desgracia, ya requiere conocimientos técnicos avanzados, pero, al menos, entender bien el problema, que es lo que pretende este post, te permitirá plantearlo con el servicio técnico de tu hosting o un profesional que te ayuda. Aquí es dónde valorarás tener un soporte técnico más premium como el de Webempresa que abarque también WordPress porque te ayudará mucho más con este tipo de problemas que son propios de las aplicaciones y no del hosting en sí.

Un problema difícil como ésta será, además, una buena prueba para evaluar la calidad de tu soporte técnico y averiguar si se lo toman en serio, si se echan balones fuera o si simplemente no están a la altura.

De hecho, ésta es la razón que hay detrás del concepto de hosting gestionado como el que ofrece, por ejemplo, WPEngine y en el que el equipo de soporte se encarga también de los problemas relacionados con las aplicaciones alojadas, no solamente de la parte “pura” de hosting. Por eso es mucho más caro que un hosting compartido o un hosting VPS “normal”.

Una buena opción lo son también los hostings con un servicio adicional de soporte técnico especializado en aplicaciones concretas como como JoomlaWordPress o PrestaShop.

No son un hosting gestionado (ellos te guían, pero las acciones la realizas tú, no ellos), pero una opción intermedia muy muy interesante porque con un proveedor bueno en la práctica puedes llegar a un nivel de servicio muy parecido por una fracción del coste.

Ahora mismo el mejor servicio con diferencia del mercado de estas características (en nuestra opinión) lo ofrece Webempresa que es, por cierto, nuestro actual proveedor para este blog. Con unos precios solamente un pelín más elevados que un hosting compartido puro como el que ofrece, por ejemplo, Hostgator (que es un buen hosting), ofrecen un nivel de servicio claramente superior.

De hecho, la holgura de sus máquinas y la calidad de sus configuraciones es tal que el problema de las URLs parametrizadas simplemente “desapareció” sólo después de la migración la cual te cuento aquí en detalle.

CONTENIDO PRESTADO DE CIUDADANO2CERO