Mejorar rendimiento en Magento, acelerando sesiones y cache

Pequeño artículo donde explicamos una pequeña mejora en el rendimiento de Magento, consiste en guardar tanto la cache y las sesiones en un disco en memoría RAM usando el formato de ficheros TMPFS. Esto permite reducir el número de accesos a disco por parte de Magento. Lo primero sería configurar Magento para que guarde las sesiones utilizando archivos. Para ello editamos el archivo app/etc/local.xml.
<session_save><![CDATA[files]]></session_save>

A pesar de que en muchos tutoriales de rendimiento en Magento recomiendan guardar las sesiones en base de datos, no tiene sentido tener que cargar el servidor con INSERTS y UPDATES cuando se pueden manejar perfectamente usando PHP. Y a esta conclusión hemos llegado tras testear ambas configuraciones en nuestras tiendas y ver como, en aquellas tiendas que tienen algo de tráfico, las queries que gestionan las sesiones siempre están entre el top ten de queries lentas.

Vamos a destinar, por ejemplo, 256MB al sistema de caché de ficheros y 48MB para las sesiones. Si suponemos que nuestra tienda está en /var/www/tienda/, tendremos que montar las unidades en /var/www/tienda/var/cache/ y en /var/www/tienda/var/session/ para ello lo mejor es directamente editar el archivo /etc/fstab y añadir las siguientes líneas. Fstab es el archivo dónde se indica donde y cómo montar las particiones en el arranque del sistema.

tmpfs on /var/www/tienda/var/cache type tmpfs (rw,size=256,mode=0777)
tmpfs on /var/www/tienda/var/session type tmpfs (rw,size=48,mode=0777)
Ahora basta con recargar las particiones montadas usando
sudo mount -a

Compartir:
  • Print this article!
  • Facebook
  • Twitter
  • Meneame
  • Google Bookmarks
  • del.icio.us
  • Digg


COMENTARIOS

Artículo muy útil, sobre la “deficiencia” que siempre se le ha achacado a Magento, ¿Qué opináis del último post comparativo de Juan Macias http://juanmacias.net/archives/951 , estáis de acuerdo?


Hola Juan. Juan Macias tiene algo de razón si raspas en la superficie, pero en el fondo no es así. Es decir, es cierto que Magento dejado caer tal cual ofrece poco rendimiento y es poco escalable, ¿pero que software libre instalado de serie es escalable? ¿Drupal, WordPress? Pues la verdad es que ninguno de ellos soportan una gran cantidad de usuarios concurrentes si no se activan diversos plugins de cache. Además, tiene algunas “guarradas” de programación bastante serias, carga a la vez prototype y jQuery.

Hay muchas pequeñas cosas que se pueden hacer sobre una instalación de Magento para mejorar de forma impresionante su rendimiento, cosas en el Magento, pero sobretodo en el servidor que ejecuta nuestra tienda en Magento. Esto da para un post entero, más que para un comentario, pero en general es muy importante la potencia de la máquina donde esté alojado. No puedes pretender que un hosting compartido de Dreamhost (por ejemplo), funcione igual que un “bicho” de hispaweb de 16 cores http://hispaweb.net/servidor-dedicado.html. Tener un servidor de dedicado es muy importante porque te permite mejorar su configuración para alcanzar el máximo rendimiento, pero a su vez tiene el problema que necesitas conocimientos técnicos elevados para mantenerlo.

Alojado en el “bicho” mencionado de hispaweb http://quelovendan.com/ aguantó el día del lanzamiento 13.000 visitas/86.000 páginas vistas en 12 horas y sin despeinarse.

Y para no sólo hacer publicidad de nuestros amigos/clientes tenemos el ejemplo de http://www.nafnaf.com/fr/, desarrollada con Magento y la verdad es que la experiencia de navegación es muy buena.


Muy bien razonado David, y totalmente de acuerdo.


PARTICIPA EN LA CONVERSACIÓN

Introduce tu información personal o utiliza tu cuenta de twitter o facebook para acceder

 






SIGUENOSEN: