Magento es una plataforma de comercio electrónico increíblemente poderosa. En esta miniserie, aprenderemos cómo comenzar con la plataforma, conocer las terminologías, configurar una tienda y todos los aspectos relacionados de ella y, finalmente, aprender a personalizarla para hacerla nuestra propia..
En esta parte final, abordaremos una de las mayores quejas que las personas tienen con Magento: su desempeño. Revisaremos varios métodos diferentes que podría aplicar para impulsar significativamente la plataforma. ¿Emocionado? Empecemos!
En las últimas partes, observamos a alto nivel cómo se agrupan los temas de Magento, los componentes que los impulsan y cómo funciona todo junto para crear un tema de trabajo junto con una mirada superficial a una serie de métodos API que expone Magento. También analizamos paso a paso lo que es la tienda Magento de múltiples tiendas, cómo puede ayudarlo y, finalmente, cómo configurarlo todo..
El desempeño de Magento es un área sobre la cual los usuarios se quejan constantemente. No mucho de esto es cierto, pero hay muchas maneras diferentes de mejorar el rendimiento, por supuesto. Hoy, analizaremos formas de mejorar drásticamente el rendimiento de su instalación de Magento. Sé que suena interesante y tienes ganas de empezar.
Nota rápida antes de que empecemos sin embargo. La mayoría de los ajustes y / u optimizaciones mencionados aquí serán solo esos: menciones. Probablemente debería buscar la implementación en Google, ya que la implementación en sí misma requerirá un tutorial de tamaño razonable en sí mismo. Con eso fuera del camino, comencemos!
Este es el aspecto más crítico de su instalación de Magento. Magento se puede ejecutar en un host compartido, pero tenga cuidado, el rendimiento no será óptimo. Magento realmente requiere más potencia que la que puede proporcionar un host compartido Mill y realmente se mostrará cuando lo ejecutes en uno..
Un VPS o un servidor dedicado es ideal cuando se trata de Magento. Y recuerda no escatimar en la memoria porque la necesitarás. Montones.
Dejar que Magento almacene en caché algunas partes de su base de código es una de las pocas cosas que debe hacer al comenzar a optimizar una instalación. No necesita habilitar el almacenamiento en caché para todo, pero sugeriría diseños y bloquearía la salida HTML como elementos esenciales. Con este almacenamiento en caché habilitado, dependiendo del tamaño del sitio, puede esperar que su tiempo de carga disminuya drásticamente.
Tenga en cuenta que deberá deshabilitar el almacenamiento en caché durante el desarrollo. Si está realizando cambios en su código y no se refleja en la parte frontal, el culpable es el almacenamiento en caché. Un punto tan obvio, pero ha sido la causa de la gran cantidad de vello durante el desarrollo..
Una vez que haya habilitado el almacenamiento en caché, ahora puede ir un paso más allá. Magento almacena información en caché utilizando un sistema de almacenamiento basado en archivos. Si bien esta es la forma más confiable, a menudo hay ocasiones en las que se desea una gran velocidad. En estos casos, debería considerar la implementación de un sistema de almacenamiento en caché basado en memoria..
Hay una serie de opciones disponibles y las personas han tenido un gran éxito con ellas. eAccelerator es mi herramienta preferida en estos días. Solo recuerde configurarlo con suficiente memoria o puede tener que purgar datos durante los momentos más inoportunos..
Si está en un VPS o en un servidor dedicado, considere la posibilidad de deshabilitar extensiones PHP no esenciales. Magento solo necesita un puñado como PDO_MySQL, así que siéntase libre de deshabilitar los extraños.
Además, hay 2 ajustes que resultarán en un mejor rendimiento.
Por defecto, PHP está configurado para usar una cantidad de memoria absurdamente baja. Tendrás que aumentar esto. Puede hacer esto agregando la siguiente línea al archivo de configuración:
php_value memory_limit 512M
El segundo es pellizcando el realpath_cache valor para que.
realpath_cache_size = 1M realpath_cache_ttl = 86400
Este es más un tema general que uno específico de Magento, así que seré breve aquí. Hay una serie de módulos de Apache que deberá habilitar y / o configurar para mejorar el rendimiento de su tienda.
El primero es mod_deflate. Esto permite que la salida del servidor se comprima drásticamente, lo que lleva a un mejor rendimiento. Definitivamente un módulo que necesita ser habilitado..
En segundo lugar, mira en mod_expires. Este módulo permite que el navegador almacene en caché recursos específicos durante un período de tiempo determinado para que los visitantes que regresan tengan una experiencia más ágil.
Y finalmente, KeepAlives. Esto permite conexiones persistentes al crear sesiones de larga duración que permiten enrutar múltiples solicitudes a través de la misma conexión TCP. Esto ayuda cuando tienes varios activos pequeños en tu página.
Recuerde reconstruir periódicamente sus índices para las tablas a través del back-end. Este es un punto esencial que dará como resultado un aumento notable en el rendimiento de su tienda..
Tenga en cuenta que reconstruir los índices es un asunto muy costoso, en lo que se refiere a recursos, y debe hacerse durante las horas libres. Hacer esto incluso durante una actividad moderada en su tienda degradará significativamente el rendimiento y la capacidad de respuesta de la tienda.
El intérprete de PHP tiene que leer cada archivo del disco y compilarlo en cada solicitud, algo que está extremadamente cargado de CPU si se considera el gran tamaño de Magento. En estos casos, se recomienda un acelerador de PHP como APC o eAccelerator.
Herramientas como éstas aumentan significativamente el rendimiento de su código PHP al almacenar en caché su código en un código de byte intermedio y se sirve en lugar de tener que pedirle al intérprete que lo compile cada vez.
Esta es una extensión del punto anotado ligeramente arriba. Magento almacena una gran cantidad de información [no solo la base de datos] en el disco duro del servidor que, como saben, es el eslabón más lento de la cadena. Esto incluye cachés, información de sesión y así sucesivamente. Si desea mejorar el rendimiento en esta área, la mejor manera de avanzar es implementar un sistema de archivos basado en memoria para asegurarse de que todos los datos se almacenen en la memoria en lugar de llamadas costosas al disco duro..
Ya que no tenemos el espacio aquí, te indicaré la dirección correcta. Lo que deberá hacer es configurar una partición tmpfs que se encargue de sus directorios de sesión y caché. Estos se pueden encontrar en /var/www/domain.com/var/sessions/ y /var/www/domain.com/var/cache/ respectivamente.
El módulo de catálogo de extremo frontal plano crea tablas de base de datos adicionales para almacenar datos en un formato plano / lineal. Este módulo está disponible tanto para la categoría como para los datos del producto, así que no dude en habilitarlo independientemente según lo requiera su caso de uso..
Habilitar este módulo solo se recomienda para grandes tiendas. Las tiendas con un catálogo pequeño definitivamente deben mantenerse alejadas ya que habilitar esto puede no proporcionar suficiente aumento de rendimiento para justificar el uso y realmente puede disminuir el rendimiento. Tome una decisión cuidadosamente considerada aquí.
El back-end de Magento es significativamente más intensivo en recursos que el front-end, ya que tiene que manejar mucha más información. Y una vez que su tienda ha alcanzado un cierto umbral con respecto al número de productos, por ejemplo, 5,000, realmente comienza a gravar el servidor..
Tener un servidor de administración dedicado puede ayudar a que el panel de administración obtenga los ciclos de CPU que necesita, lo que afecta negativamente el rendimiento del resto del sitio.
El tema predeterminado de Magento es un excelente lugar para comenzar, pero en realidad no es el más eficiente. Déjame elaborar. El tema predeterminado está diseñado para exhibir todas las características de Magento y, por lo tanto, naturalmente, agrupa todas las características de whiz bang. Recuerde que Magento crea una página a través del análisis del diseño que especificamos y, por lo tanto, el tiempo de generación de la página está directamente relacionado con la cantidad de bloque que utiliza en una página..
Por lo tanto, al crear su propio tema, evite diseños innecesariamente complejos, simplifique y / o combine los bloques más pequeños para reducir los ciclos de CPU necesarios para representar el código de la página..
Magento tiene un elegante sistema para incluir / excluir mediante programación las hojas de estilo y los archivos JavaScript dentro de los temas. Muchos autores de temas parecen pasar por alto este sistema simplemente al incluir estos elementos manualmente en las plantillas HTML. Esto está mal.
La forma correcta de incluir estos activos se muestra a continuación:
Al usar el código anterior en los archivos de diseño, Magento combina los archivos JS en un solo archivo y se envía al navegador en una sola solicitud.
Las reglas de optimización de sitios o aplicaciones normales también se aplican aquí. Por lo general, los navegadores limitan la cantidad de descargas de un dominio a 2-5, lo cual es muy limitante cuando se carga un tema rico en medios con una cantidad de activos pequeños. Hay varias maneras fáciles de salir de esto.
Lo primero y lo más fácil es algo con lo que todos están familiarizados: los sprites. Usando sprites, puedes minimizar el número de solicitudes simultáneas generadas por tu tema.
Este enfoque puede no funcionar en todos los casos. ¿Qué pasa si su tema tiene un montón de guiones ingeniosos, videos y whatnots? Estos no deben bloquear la carga del resto de la página. En estos casos, simplemente cree un subdominio para activos estáticos y apunte su instalación de Magento al recurso.
El registro es esencial pero también es costoso ya que tendrá que escribir en el disco. Magento, en general, es muy hablador en lo que respecta al registro y pronto se encontrará con la mayoría de los archivos de registro que no necesitará.
La solución aquí es deshabilitar todas, excepto las partes esenciales. ¿Ha permitido que las consultas lentas se registren en su servidor de producción? ¡Apágalo, ahora mismo! Las consultas lentas deben investigarse y solucionarse mucho antes de la implementación. Tiene su lugar en un servidor de desarrollo, no en un servidor de producción..
Este es otro consejo esencial que mucha gente sigue olvidando. Ya sea la versión de PHP, mySQL o Magento en sí, las versiones más nuevas brindan una velocidad y estabilidad sustanciales que no puede darse el lujo de perder..
Especialmente en el caso de Magento, incluso cada mini actualización corrige una serie de problemas de rendimiento y correcciones de errores, siempre y cuando la rama esté etiquetada como estable, actualice!
Magento tiene un módulo de compilación elegante que promete en cualquier lugar entre un 25% -50% de aceleración. Como su nombre indica, este módulo compila todos los archivos de Magento y, por lo tanto, mejora el rendimiento..
Tenga en cuenta que este módulo todavía está en versión beta y solo admite compilaciones 1.3x. Esto debería estar listo pronto, así que tenga en cuenta este punto también..
Fooman Speedster es una poderosa extensión que puede darle a tu tienda un buen aumento de rendimiento. Funciona al combinar, minimizar, comprimir y almacenar en caché los archivos JavaScript y CSS. Además de esto, también permite la compresión GZIP para el resto de la tienda.
En definitiva, significa que se envían menos datos y menos solicitudes, lo que es una ganancia neta de la forma en que se ven. Funciona con todas las versiones principales de Magento y es definitivamente una necesidad para cualquier tienda.
Otra de esas cosas que debes hacer periódicamente para mejorar el rendimiento. Tendrá que reparar su base de datos, si es necesario y luego optimizarla. Puede hacerlo a través de sus hosts CPanel, phpMyAdmin o simplemente comandos de shell. Aquí hay un enlace rápido que lo guiará a través del proceso usando phpMyAdmin.
¡Y hemos terminado! Hoy, echamos un vistazo a varias formas de mejorar el rendimiento de Magento. Esperemos que esto te haya sido útil y que te haya parecido interesante. Estoy seguro de que me he perdido algunos puntos aquí, así que siéntete libre de hacer comentarios con los consejos que has estado usando..
Preguntas? Cosas bonitas que decir? Criticas? Pulsa la sección de comentarios y déjame un comentario. Feliz codificacion!