Al igual que un comercio a la calle, cuando la cantidad de personas que lo visitan aumenta, o cuando llenamos de demasiados productos al comercio o cuando la distribución de los mismos no es la adecuada, puede ser que el mismo se sature y entonces sea nada feliz ingresar al mismo.
Lo mismo puede suceder con un sitio web, y más aún si comenzó a crecer y no pudimos planificar con tiempo su crecimiento. A continuación te ayudamos un poco más a entender por qué pueden suceder estas saturaciones y cómo resolverlas.
Si estás leyendo este artículo, es porque seguramente tu servicio de web hosting, VPS o de servidor dedicado se sature y produzca una caída del servidor web (http), servidor de emails (no puedes enviar o recibir correos) y/o caída del servidor de bases de datos (mysqld) y/o lentitud en el servicio.
En NEOLO.COM ofrecemos web hosting desde el año 2002, y en todo este tiempo hemos trabajado y visto decenas de miles de sitios web y hemos resueltos cientos de miles de casos, por eso, desde nuestra experiencia, vamos a contarte un poco más qué es lo que podría estar sucediéndole a tu sitio web y cómo resolverlo:
Vamos a hacer a continuación un ping pong de preguntas y respuestas, para ayudarte a resolver este inconveniente y que tu sitio web esté siempre en línea con NEOLO.COM
¿Por qué se cae o funciona lento mi sitio web en el VPS?
Para poder comprender la razón de una caída o lentitud de tu sitio web, es fundamental primero tener en cuenta que un sitio web no depende sólo del hosting, sino que también está constituido por varios componentes importantes:
- Web Hosting: Servidores encargados que el sitio web -que son un conjunto de archivos- funcionen correctamente, según la capacidad del servidor. El Web Hosting también es encargado del funcionamiento del servidor de emails, de la base de datos, entre otros servicios web
- Programación del sitio web: Es el conjunto de códigos y archivos que dan como resultado a todo lo que se “ve” de un sitio web y todo aquello que es clickeable, o permite interacción. Por dar un ejemplo, existen distintas formas de programar un sitio web para que muestre la página principal, no es lo mismo mostrar una vez una foto y luego que la misma quede almacenada en caché (sistema de memoria temporal), a que sea mostrada cada vez al visitante (por lo tanto cada vez vuelve a pedirle al servidor la información generando más utilización de la memoria y capacidad del servidor), tampoco es lo mismo tener una base de datos sin índices que con índices, dado que esto modifica sustancialmente el consumo de los recursos (RAM, CPU, etc) del servidor de web hosting.
- Cantidad de visitas: Usualmente se dice que un sitio web tiene “5.000 visitas diarias” pero no es lo mismo recibir 5.000 visitas distribuídas equitativamente en 24 horas, que recibir 4.000 visitas en 30 minutos y el resto a lo largo del resto del día. Asimismo, tampoco es lo mismo recibir 5.000 visitas en un sitio web programado de forma optimizada que no optimizada. Tampoco es lo mismo recibir una visita que ingresa y se retira de la web, que otra que navega por todos los contenidos de la misma. El consumo que realice cada visita, que interactuará con la programación del sitio web y con el servidor de web hosting, generará un consumo específico. Para darte una idea, en NEOLO.COM tenemos muchísimos clientes que prefieren pagar VPS 5 teniendo en su web “sólo” 1.000 visitas diarias en vez de optimizar la programación del sitio web, mientras que otros tienen 9.000 visitas diarias y tienen un VPS 2. Es una decisión completamente personal, nosotros acompañamos a cada cliente para que tome la decisión que desee.
Con tener un mal uso o abuso de una sola de esas variables o componentes el servicio de web, bases de datos, mails, etc, dejará de funcionar.
Por ejemplo En Web Hosting podría ser un servidor de baja capacidad, supongamos que la programación del sitio es la idónea y la cantidad de visitas es una cantidad normal y la habitual para el sitio web pero si el servidor tiene menor cantidad disponible de RAM, o de CPU, entonces el sitio web podría funcionar lento o saturar al servidor y que el mismo no funcione más.
Una cantidad excesiva de visitantes haría que el servidor de web hosting también utilice todos sus recursos disponibles y deje de responder.
Pero la causa más frecuente es una ineficiente programación web. Sistemas como WordPress o Joomla entre otros además de tener millones de fallas de seguridad, no están preparados de manera predeterminada para recibir miles de visitas diarias. Asimismo por más que las versiones futuras de esos sistemas ya vengan preparadas para recibir miles o decenas de miles de visitas diarias en un hosting compartido, quizás los plugins o themes (diseños) que se instalen al WordPress o Joomla no lo estén. Cada uno de esos sitemas posee millones de líneas de código, pero una sola podría hacer que todo el sitio funcione lentamente y que incluso consuma todos los recursos del servidor.
Es decir, tener muchas visitas no te obliga a tener un mayor servicio de hosting o de VPS, porque una sóla visita con una programación mal realizada, podría colgar un servidor web utilizando todos los recursos del mismo.
¿Como mejoro la programación de mi sitio?
Si utilizas WordPress lee nuestra guía de optimización de WordPress. Pero si tenés otra plataforma o bien ya lo instalaste y tu sitio sigue saturando al servidor de web hosting, es recomendable que contrates a un programador PHP con varios años de experiencia y que sepa optimizar queries al MySQL -es decir, las solicitudes que desde el navegador web de cada usuario se lanzan a través del PHP hacia la base de datos MySQL-
¿Algunos consejos de programación PHP para optimizar el código de mi sitio web?
Desde Maestrosdelweb nos dan algunos consejos muy puntuales:
- No suprimas errores con @, es muy lento.
- La función mt_rand es más rápida que rand
- La función mt_srand es más rápida que srand
- La función getrandmax es más lenta que mt_getrandmax.
- Utiliza pocos accesos a la base de datos. Al realizar una consulta selecciona solo los campos que necesites. No utilices “SELECT * FROM tabla” si no lo necesitas, utiliza “SELECT campo, campo FROM tabla”.
- La programación orientada a pbjetos (POO) es muy útil, y mucho más cuando nuestra aplicación cuenta con gran cantidad de códigos, la POO nos permite obtener un mayor aprovechamiento reutilizando nuestro código.
- Comprueba el tiempo que demora tu aplicación en cargar.
- Realiza validaciones de formularios mediante javascript. No valides con PHP después de realizar un POST. El usuario tendría que esperar que se cargue nuevamente la web para que le valide el formulario.
Igualmente, siempre es recomendable, si tu sitio ya tiene un tráfico suficiente (más de 2.000 visitas diarias) que busques un programador PHP / MySQL para que comience a optimizar tu sitio web. Al igual que cuando un negocio a la calle crece y requiere renovaciones y ampliaciones, también lo necesitan los sitios web en Internet.
¿En dónde encuentro más información para optimizar el código PHP / MySQL de mi sitio web?
http://www.lostiemposcambian.com/blog/php/5-consejos-de-micro-optimizacion-de-php/
http://www.maestrosdelweb.com/editorial/como-optimizar-tus-aplicaciones-php/
https://developers.google.com/speed/articles/optimizing-php
http://www.mdproductions.ca/guides/50-best-practices-to-optimize-php-code-performance
http://phplens.com/lens/php-book/optimizing-debugging-php.php
http://hungred.com/useful-information/php-micro-optimization-tips/
¿Como contrato un servidor de mayor capacidad?
Podrás siempre hacerlo contactando al área de soporte de NEOLO.COM. Igualmente, para nosotros no todo es vender, vender y vender por eso te volvemos a recomendar enérgicamente que también busques un programador PHP para optimizar el código de tu sitio web
¿La cantidad de visitas tiene que ver?
Como te comentamos anteriormente, sólo hasta cierto punto. Una mala programación puede hacer que tu sitio web pueda procesar muy poca cantidad de visitas, mientras que una programación optimizada por un profesional puede soportar cientos de veces más visitas que una no optimizada.
¿En dónde puedo encontrar más tips para optimizar la programación de mi sitio web? ¿O un programador PHP que pueda optimizar mi sitio web?
En NEOLO.COM creamos NEOLO.COM/PRO. Es un sitio donde podrás encontrar profesionales independientes que realizan trabajos de manera freelance. Sino podés buscar también consultando a amigos o preguntando en otras webs como Workana o TrabajoFreelance.
En resumen: ¿Si tu sitio web funciona lento o consume muchos recursos, qué hago?
Opción A: Optimizás la programación del sitio web buscando un programador en NEOLO.COM/PRO o en otro sitio.
Opción B: Hacés upgrade a un VPS de mayor capacidad a un servidor dedicado,
Opción C: A+B
También te aconsejamos leer: Optimización en WordPress