Pregunta

¿Magento suele ser tan terriblemente lento?

Esta es mi primera experiencia con él y el panel de administración simplemente tarda años en cargar y guardar los cambios. Es una instalación predeterminada con los datos de prueba.

El servidor donde está alojado sirve a otros sitios que no son de Magento súper rápido. ¿Qué tiene el código PHP que usa Magento que lo hace tan lento y qué se puede hacer para solucionarlo?

¿Fue útil?

Solución

Solo participé tangencialmente en la optimización de Magento para el rendimiento, pero aquí hay algunas razones por las que el sistema es tan lento

  1. Partes de Magento usan un sistema de base de datos EAV implementado sobre MySQL. Esto significa consultar por una sola '' cosa '' a menudo significa consultar varias filas

  2. Hay muchas cosas detrás de escena (configuración de la aplicación, configuración del sistema, configuración del diseño, etc.) que implican construir árboles XML gigantes en la memoria y luego "consultar". esos mismos árboles para información. Esto requiere memoria (almacenamiento de los árboles) y CPU (análisis de los árboles). Algunos de estos (especialmente el árbol de diseño) son enormes. Además, a menos que el almacenamiento en caché esté activado, estos árboles se crean a partir de archivos en el disco y en cada solicitud .

  3. Magento usa su sistema de configuración para permitirle anular clases. Esta es una característica poderosa, pero significa que cada vez que se crea una instancia de un modelo, ayuda o controlador, se deben ejecutar instrucciones PHP adicionales para determinar si se necesita un archivo de clase original o un archivo de clase de anulación. Esto se suma.

  4. Además del sistema de diseño, el sistema de plantillas de Magento implica una gran cantidad de renderizado recursivo. Esto se suma.

En general, los ingenieros de Magento se encargaron, en primer lugar, de construir el sistema más flexible y personalizable posible, y preocuparse por el rendimiento más adelante.

Lo primero que puede hacer para garantizar un mejor rendimiento es activar el almacenamiento en caché (Sistema - > Gestión de caché). Esto aliviará parte del bloqueo de CPU / disco que ocurre mientras Magento está construyendo sus diversos árboles XML.

La segunda cosa que querrá hacer es asegurarse de que su equipo anfitrión y de operaciones tenga experiencia en el ajuste de rendimiento de Magento. Si confía en el plan de $ 7 / mes para llevarlo a cabo, bueno, buena suerte con eso.

Otros consejos

Además de las recomendaciones de Alan Storm sobre el almacenamiento en caché, hay dos cosas que recomiendo específicamente que analice en relación con el almacenamiento en caché:

: asegúrese de que el almacenamiento en caché esté en memoria caché, en lugar de en el disco.

Cuido un par de instalaciones de magento, y una vez que obtienes cualquier tipo de carga en el sistema, memcached comienza a funcionar mucho más rápido. Y es muy fácil cambiarlo (¡en relación con hacer otras cosas de magento al menos!)

Un buen punto de partida está aquí: http://www.magentocommerce.com/boards / viewthread / 12998 / P30 / , pero si no ha utilizado memcached en absoluto antes, vale la pena ver también información general al respecto.

- Habilitar el almacenamiento en caché de plantillas / vistas.

Este es un buen artículo: http://inchoo.net/ecommerce/magento / magento-block-caching /

También hay buenos en el sitio de magento (almacenamiento en caché de bloque de google magento), pero está inactivo en este momento.

Para agregar mis dos centavos al almacenamiento en caché de bloques, le aconsejo que cree sus propios bloques en / app / code / local, extendiendo los principales y definiendo los parámetros de caché, asígneles el nombre xxx_Cache y luego actualice su diseño para usar estos bloques en lugar de los principales. De esta forma, evita perder sus cambios o romper el sistema cuando actualiza magento.

Si aún no lo ha visto, Magento y Rackspace se unieron para crear un libro blanco sobre el ajuste de rendimiento de Magento. Es excelente. https : //support.rackspace.com/whitepapers/building-secure-scalable-and-highly-available-magento-stores-powered-by-rackspace-solutions/

--- editar ---

Otro gran recurso, recientemente disponible (octubre de 2011) es: http://www.sessiondigital.com/assets/Uploads/ Mag-Perf-WP-final.pdf

(Gracias a Alan Storm en este caso)

Posiblemente también haya una razón muy poco obvia por la cual su interfaz de administración es muy lenta. Magento tiene un módulo llamado Mage_AdminNotification. Intenta deshabilitar esa ext. Porque lo que hace es consultar a magentocommerce.com para obtener nuevos mensajes de actualización. Si sus servidores son lentos, su página de administrador espera y, en efecto, es lenta debido al retraso de la red y la carga de noticias externas. Si ha asegurado su conexión de servidor saliente a través de un firewall, esto puede ser aún más frustrante, ya que la interfaz de administración esperará el tiempo de espera cuando no pueda llegar a magentocommerce.com

Para deshabilitarlo: vaya a Sistema - > Configuración, desplácese hacia abajo y presione Avanzado (en la sección Avanzado). ¡Ahora deshabilite Mage_AdminNotification y guárdelo!

Solo tengo una experiencia superficial con Magento. Lo instalé en un servidor de red compartido y la carga de la página fue pésima ~ 5 + segundos. En una alondra, lo instalé en mi servidor dedicado optimizado para sitios CMS, y me sentí muy, muy ágil.

Mi hosting dedicado tenía ~ 10 Joomla! sitios y un sitio VBullitin en ejecución.

Supongo que simplemente no funcionará en el alojamiento compartido. La suscripción excesiva simplemente no permitirá que Magento ejecute los recursos suficientes como debería.

Estoy más involucrado en la optimización del servidor administrado en mi empresa, pero puedo tener algunos consejos para usted. Primero, puede mirar el código más de cerca usando la función de rastreo de código del servidor Zend. Le permitirá ver dónde y cuándo se ensucian las cosas.

Comparto totalmente la consideración de benlumley con respecto al caché. La mayoría de los sitios que alojamos ni siquiera tienen habilitado el almacenamiento en caché de bloques. Este caché debe llamarse explícitamente y no "asumirse". Entonces, si su código aún no ha formado parte de este mecanismo, es algo que definitivamente desea probar. Si tiene una versión EE, puede obtener la página completa para obtener lo mejor de la bestia.

Un proxy inverso también ayudará mucho. Guardará en caché los recursos estáticos, reduciendo significativamente la presión sobre la pila de interpretación de php de sus servidores frontales.

No olvides escribir las sesiones & amp; Magento caché a un disco RAM. Esto definitivamente lo llevará a otro nivel de actuaciones.

Todavía hay mucho que decir aquí, pero me estoy quedando sin tiempo. Debe saber que un buen sitio, bien codificado en una versión 1.4.1 CE, que se ejecuta en un servidor Xeon + 16 GB RAM de 2x5650 y que tiene un Rproxy en la parte superior puede recibir hasta 50 000 visitantes únicos al día con páginas suaves para todos .

Cambiar de Apache a LiteSpeed ??nos ayudó mucho. Además de: Editar la configuración de MySQL, instalar Fooman Speedster (módulo para comprimir / combinar archivos js y css) e instalar APC. Magento también ha publicado un libro blanco sobre cómo obtener el mejor rendimiento de la edición empresarial, pero es igualmente aplicable a las otras versiones: http://www.magentocommerce.com/whitepaper/

Hay muchas razones por las cuales su carrito de compras de Magento podría estar funcionando lento, pero no hay excusas porque hay una variedad de formas de solucionar el problema y hacerlo bastante rápido. Habilitar Gzip modificando su archivo htaccess es un comienzo. También puede instalar la extensión Fooman Speedster. El tipo de servidor utilizado también determinará la velocidad de su tienda. Más consejos y una mejor explicación aquí http://www.interactone.com/ How-to-speed-up-magento /

Magento es muy lento porque el diseño de la base de datos no es muy bueno. El código es un desastre y muy difícil de actualizar y optimizar. Por lo tanto, todas las optimizaciones se realizan a través de caché en lugar de código.

Por otro lado. Es una tienda web con muchas herramientas. Entonces, si necesita una tienda web flexible, simplemente compre un servidor muy potente y estará bien.

Cuando instalé por primera vez, tenía páginas que tardaban 30 segundos en cargar. Mi servidor no estaba lleno en RAM o procesador, así que no sabía qué hacer. Al mirar el panel de red de firebug, cargaba unos 100 archivos por página, y cada uno tardó mucho tiempo en conectarse. Después de instalar Fooman Speedster y el gzip en el htaccess, los tiempos de carga se redujeron a 3 segundos, como si hubieran estado en otros carros de compras en mi servidor.

también se reducirá a funcionalidad versus rendimiento.

Se obtiene un rendimiento sin procesar utilizando nginx, php-fpm, memcached, apc y un servidor diseñado correctamente.

La funcionalidad como el rendimiento de plesk y magento podría gestionarse teniendo en cuenta toda la infraestructura al diseñar una nube de rendimiento de magento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top