24
Prestashop Madrid www.hoswedaje.com @hoswedaje 91 101 57 57 - http://www.meetup.com/es/Prestashop-Madrid - @prestashopmad - [email protected] Optimizando Prestashop

- ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Prestashop Madrid

www.hoswedaje.com

@hoswedaje

91 101 57 57

- http://www.meetup.com/es/Prestashop-Madrid

- @prestashopmad

- [email protected]

Optimizando Prestashop

Page 2: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizando Prestashop

Optimizar Prestashop para aumentar su rendimiento.

Page 3: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Índice

Índice

1) Tipos de hosting: Compartido, VPS y Dedicado

2) Optimización de Prestashop

2.1) Minify

2.2) Cache Smarty

2.3) Cache Prestashop

2.4) Servidores de media

2.5) Quitar idiomas para reducir búsquedas

2.6) Cache de navegador

3) Optimización de Servidores

3.1) Optimizar Apache

3.2) NGINX como Proxy

3.3) Optimizar MySQL

3.4) Discos SSD

4) Herramientas para medir el Rendimiento

Optimizando en Prestashop

Page 4: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizando Prestashop

Tipo de hosting: Compartido, VPS y Dedicado

Page 5: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Tipo de hosting: Compartido, VPS y Dedicados

Hosting Compartido

El hosting compartido es aquel en el cual compartimos recursos con otros usuarios del servidor. Compartimos recursos como la CPU, RAM, IP, ancho de banda…

Es el más popular por su precio y porque suele cubrir la mayoría de necesidades de una web de tamaño medio.

Optimizando Prestashop

Page 6: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Tipo de hosting: Compartido, VPS y Dedicado

Servidor Virtual VPS

Un VPS, es un servidor virtual, que corre en un servidor físico que a su vez también alberga otros VPS. Cada VPS esta completamente aislado de los demás, tanto como de espacio en disco, como en uso del CPU e incluso RAM.

Un VPS es un paso intermedio, entre un hosting compartido y un servidor dedicado

Este tipo de alojamiento nos da independencia y un mayor rendimiento de nuestra web.

Optimizando Prestashop

Page 7: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Tipo de hosting: Compartido, VPS y Dedicados

Servidor Dedicado

Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop) para nuestra tienda.

Estos servidores son totalmente independientes y no compartimos recursos con ningún «vecino».

El inconveniente de este tipo de servidores suele ser su coste y su compleja escalabilidad.

Optimizando Prestashop

Page 8: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizando Prestashop

Optimización de Prestashop

Page 9: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Minify

Su funcionalidad es simple: combinar, minimizar y cachear los archivos .js y .css que utilicemos en un website, con la finalidad de agilizar la carga de nuestras páginas.

La idea es combinar todos los ficheros del mismo tipo en uno sólo para reducir el número de conexiones http, y reducir por lo tanto el tiempo de espera para descargar cada uno de los recursos.

Activarlo en nuestro Prestashop es muy sencillo, en la sección de Rendimiento podemos encontrarlo.

Simplemente marcamos «Sí» y Guardamos.

Optimizando Prestashop

Page 10: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Caché de Smarty

Con esto conseguimos que Prestashop genere páginas estáticas para mostrar nuestros contenidos, lo que hace que el contenido relativo a la plantilla se sirva más rápido porque no se tiene que procesar, ya que está generado de manera estática a través de la caché.

Activarlo en nuestro Prestashop es muy sencillo, en la sección de Rendimiento podemos encontrarlo.

Simplemente marcamos «Sí» y Guardamos.

Optimizando Prestashop

Page 11: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Caché

-Sistema de archivos. Los archivos estáticos se almacenan simplemente como cualquier otro archivo, en su servidor.

- Memcached. Un sistema de almacenamiento en caché distribuido. Muy eficaz, especialmente si utiliza múltiples servidores.

- APC. Alternativa PHP Caché gratuita, abierta y robusta, pero sólo funciona con un servidor – que es el caso habitual al iniciar un negocio online.

- Xcache. Es un nuevo sistema de caché, que es específica para el servidor Lighttpd – por lo tanto, no funciona con el popular servidor Apache.

Optimizando Prestashop

Page 12: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Servidores de media

Aquí lo que hacemos es crear un subdominio, el cual va a servir los contenidos estáticos (javascript, css, imágenes, etc) de nuestra tienda Prestashop. Lo que vamos a conseguir con esto va a ser que estos contenidos estáticos se sirvan más rápido, ya que no contienen cookies, y además con este sistema permitimos la descarga de contenidos en paralelo a través de los diferentes subdominios.

Primero, creamos los subdominios apuntando a nuestra tienda Prestashop, y posteriormente, los configuramos en la sección Parámetros avanzados > Rendimiento:

Optimizando Prestashop

Si nuestra tienda tiene muchas visitas y estas además son de diferentes ubicaciones geográficas es posible que nos interese adquirir un servicio de Contenido Distribuido. (CDN)

Algunos ejemplos son Akamai o Amazon.

Page 13: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Reducir tamaño de nuestra BD

Por defecto Prestashop incluye 3 idiomas, al importar los productos nos crea la descripción en los 3 idiomas, por tanto tenemos mínimo cada producto reflejado 3 veces. Si no vamos a utilizar algún idioma lo solemos desactivar, pero aunque lo desactivemos Prestashop no elimina los productos traducidos, por tanto lo que debemos hacer es eliminar completamente los idiomas que no utilicemos.

Localización >> Idiomas

Optimizando Prestashop

Uno de los factores que puede ralentizar la carga de nuestra web es que nuestra Base de datos sea muy grande.

Hemos encontrado cliente con gran cantidad de referencias que sus bases de datos podían ocupar más de 2GB. En ocasiones el tamaño de estas tablas se puede reducir eliminando aquello que no utilizamos.

Page 14: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Caché de Navegador

El módulo mod_expires de Apache, nos permite establecer ajustes por tipo de archivo para controlar cuánto tiempo debería almacenar el navegador el archivo. Esto es realmente útil para aligerar la carga del sitio, especialmente si el sitio contiene grandes hojas de estilos, imágenes y código CSS. Esto ahorrará unos segundos de carga en el mejor de los casos que son de agradecer con conexiones muy lentas.

En el .htaccess:

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType image/gif "access plus 1 month"

ExpiresByType image/jpeg "access plus 1 month"

ExpiresByType image/png "access plus 1 month"

ExpiresByType text/css "access plus 1 week"

ExpiresByType text/javascript "access plus 1 week"

ExpiresByType application/javascript "access plus 1 week"

ExpiresByType application/x-javascript "access plus 1 week"

ExpiresByType image/x-icon "access plus 1 year"

</IfModule>

Optimizando Prestashop

Page 15: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizando Prestashop

Optimización de Servidores

Page 16: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizar Apache

¿Qué es Apache?

Apache es un servidor web, que es un programa especialmente diseñado para transferir datos de hipertexto, es decir, páginas web con todos sus elementos (textos, widgets, baners, etc). Estos servidores web utilizan el protocolo http.

Apache es totalmente gratuito y de código abierto.

Optimizando Prestashop

Page 17: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizar Apache ServerLimit y MaxClients

Es el número máximo de peticiones que puede atender nuestro servidor web, debemos calcular bien este dato porque tener una configuración baja ralentizará las conexiones de nuestros clientes y tener un valor muy alto puede provocar la caída del servidor.

StartServers

Indica el número de procesos que arranca al iniciar el servicio. Este valor no se debe poner demasiado elevado o ralentizará mucho la puesta en marcha del servicio.

MinSpareServers

Son el número de procesos IDLE que deben existir como mínimo en el servidor. Según vayan recibiendo peticiones Apache lanzará nuevos procesos para mantener este número mínimo. De esta forma los nuevos usuarios que se conecten a la web no tendrán que esperar a que Apache lance un proceso para ellos, si no que siempre se garantizará un mínimo, mejorando la respuesta del servicio.

MaxSpareServers

Es el número máximo de procesos IDLE que existirán en el servidor. Si este número se supera, Apache empezará a cerrar procesos.

MaxRequestsPerChild

Con el fin de evitar posibles fugas de memoria en la programación, se suele establecer el número de peticiones máximas que atenderá un proceso antes de morir. Poner un valor pequeño reducirá el rendimiento, ya que Apache tendrá que estar continuamente matando y lanzando nuevos procesos.

Optimizando Prestashop

Page 18: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizar Apache

KeepAlive

Las conexiones KeepAlive son aquellas que se mantienen abiertas tras recibir una petición del cliente y servirla, de tal manera que la siguiente petición reaprovecha la conexión.

Resultan útiles ya que no se tienen que abrir una conexión para cada elemento de la página (imágenes, CSS, JavaScripts…)

Cuando tenemos muchos usuarios concurrentes conseguimos una única conexión por visitante en lugar de una conexión por cada elemento descargado.

Ojo con el TimeOut por defecto que es muy alto.

Optimizando Prestashop

Page 19: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Uso de NGINX como Proxy

NGINX es otro servidor Web, que puede utilizarse en lugar de Apache o con Apache como Proxy.

Es habitual usarlo como Proxy para que sirva NGINX el contenido estático (Imágenes, CSS, Java…) y Apache el contenido dinámico (Consultas a bases de datos)

Optimizando Prestashop

Page 20: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizar MySQL

MySQL Tuner es un script hecho en Perl que permite revisar nuestra instalación y configuración de MySQL Server. Lo más importante de este script es que analiza de una forma rápida el funcionamiento y nos ofrece ajustes para mejorar el rendimiento y la estabilidad.

El funcionamiento es bastante sencillo. Descargamos el script, lo ejecutamos y nos entregará unos parámetros que ayudarán a mejorar el rendimiento. Para asegurar que los parámetros que nos recomienda son los adecuados, el servicio debe de haber estado corriendo por lo menos 24 horas antes.

http://mysqltuner.com/

Optimizando Prestashop

Page 21: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Discos SSD

Los discos SSD son discos con un rendimiento mayor de lectura/escritura

Para hosting notaremos la diferencia cuando ejecutemos procesos que requieren gran cantidad de lectura o escritura en disco como puede ser consultas a la Base de Datos.

Recomiendo su uso ya que el rendimiento de nuestra tienda mejorará significativamente.

Optimizando Prestashop

Page 22: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizando Prestashop

Herramientas para medir el Rendimiento

Page 23: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Herramientas para medir el Rendimiento

Para medir cuanto mejoran estos tips el rendimiento de nuestra web, aquí dejo algunas herramientas:

http://www.webpagetest.org/

https://developers.google.com/speed/pagespeed/insights/

http://tools.pingdom.com/fpt/

Optimizando Prestashop

Page 24: - ...files.meetup.com/13941592/PrestashopMad - Optimizando Prestash… · Se trata de un servidor físico en cual destinamos todos los recursos del mismo (En el caso de Prestashop)

Optimizando Prestashop

Preguntas