¿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?
php
magento
optimization
señor-euro
fuente
fuente
Respuestas:
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
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
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 obtener 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 .
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.
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 tenían la tarea, 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 -> Administración de caché). Esto aliviará parte del bloqueo de CPU / disco que ocurre mientras Magento está construyendo sus diversos árboles XML.
Lo segundo 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.
fuente
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 Memcached, 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 usado memcached 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, extienda los núcleos y defina los parámetros de caché, asígneles el nombre xxx_Cache y luego actualice su diseño para usar estos bloques. de los principales. De esta manera, evita perder sus cambios o romper el sistema cuando actualiza magento.
fuente
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 por Alan Storm en este caso).
fuente
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 hasta la parte inferior y presione Avanzado (en la sección Avanzado). Ahora deshabilitar
Mage_AdminNotification
y guardar!fuente
Mage_AdminNotification
.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.
fuente
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. Almacenará 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 y el caché de Magento en un disco RAM. Esto definitivamente te 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 .
fuente
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 documento técnico 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/
fuente
Hay muchas razones por las cuales su carrito de compras de Magento podría estar funcionando lentamente, pero no hay excusas porque hay una variedad de formas de evitar 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/
fuente
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. Mirando el panel de red de firebug, cargaba unos 100 archivos por página, y cada uno tardó mucho 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.
fuente
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 mediante caché en lugar de código.
Por otra parte. Es una tienda web con muchas herramientas. Entonces, si necesita una tienda web flexible, simplemente compre un servidor muy potente y estará bien.
fuente
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 adecuadamente.
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.
fuente