Mucho se ha hablado a lo largo del tiempo de los problemas de rendimiento de Magento y de sus requisitos en cuanto al servicio de hosting se refiere. Nosotros siempre hemos defendido que Magento se ha vendido como la solución para todo, cuando sólo debería aplicarse a tiendas con un tamaño medio/grande y esto es una buena prueba. |
A continuación os incluyo algunos datos de dos instalaciones reales, una realizada con Magento y otra con osCommerce. Ambas tiendas tienen un catálogo de unos 7500 productos y unas 1000 usuarios únicos por día. Con esto pretendo justificar las opiniones del artículo: Magento, heroe o villano (para tiendas las pequeñas).
Magento vs. osCommerce. Comparativa espacio en disco.
Esta claro que Magento es una plataforma con mucha más funcionalidad, pero ¿tanto?, definitivamente no. Entonces, ¿por qué se dan estas diferencias tan notables?. Hay varios motivos.
En primer lugar, nada más descargar las dos plataformas ya vemos diferencias significativas. Una instalación límpia de Magento 1.4, ocupa unos 70MB, mientras que la instalación limpia de osCommerce 2.3.1 con algunas contribuciones mínimas (recordemos que osCommerce es una plataforma muy básica que no puede usarse sin incluir ciertas ampliaciones), no supera los 10MB.
Fundamentalmente, la diferencia en el tamaño se debe a dos motivos. Por un lado, hemos de considerar que Magento se basa en Zend Framework, cuya instalación mínima ya son 25MB. Por otro, Magento es una plataforma ‘extremadamente’ orientada a objetos, y es que una búsqueda rápida nos retorna unas 3500 definiciones de clase en la instalación limpia de magento 1.4. Pero lo peor de todo es que muchas de ellas están vacías y simplemente se deben a la forma de trabajo de Zend Framework.
Además de esto, se une otro problema adicional y es que en cuanto Magento lleva unos días en funcionamiento, su intensivo uso de la cache en disco todavía incrementa más esta diferencia.
Magento vs. osCommerce. Comparativa base de datos.
Los datos corresponden a lo que ocupa un fichero dump de la base de datos de cada una de las tiendas y de nuevo vemos la gran diferencia entre ambas plataformas.
Para determinar los motivos, volvemos a echar mano de las instalaciones límpias de osCommerce y Magento y vemos que la instalación limpia de osCommerce tan solo tiene unas 60 tablas, mientras que la instalación de Magento crea más de 300.
¿Por qué?. A parte del hecho del mayor número de funciones de Magento, el problema es que la base de datos de Magento está mal diseñada desde el principio.
Este error de diseño no es otro que haber optado por un modelo de datos EAV para la estructura de la base de datos (lo comentaremos en otro post). Este modelo es adecuado para sistemas de alto rendimiento y sobre todo para bases de datos cuyo modelo no está completamente definido en un comienzo. Por mucho que la gente de Varien se empeñe, aunque teóricamente el modelo EAV se adapta como un guante a la definición de tienda virtual, no siempre lo teórico es la mejor solución, y es que los modelos teóricos, a menudo, no entienden de requisitos de hardware.
A favor de la gente de Magento, diremos que rectificar es de sabios y versión a versión, van implementando el nuevo modelo flat de datos, que en el futuro hará que Magento mejore mucho en rendimiento. Lástima haber perdido 3 años con el EAV.
Por ahora, para compensar esta deficiencia en la base de datos, Magento hace un uso intensivo de la cache de datos en disco, lo que hace mucho más grave las diferencias del punto anterior en cuanto al espacio, y es que la cache de Magento puede llegar a utilizar varios cientos de MB en disco.
Magento vs. osCommerce. Comparativa tiempo de carga.
Aunque pueda parecer que las fuerzas aquí se equilibran, nada más lejos de la realidad.
La instalación de Magento está corriendo en un VPS, con 1GB de RAM para ella solita. Mientras, la instalación de osCommerce, está corriendo en un servidor similar, pero compartiendo recursos con otras 25 Páginas Web.
Magento vs osCommerce. Comparativa uso de memoria RAM.
El gráfico corresponde a la carga de la página de inicio de las tiendas Magento y osCommerce. Aunque aparentemente la diferencia es aceptable, lo cierto es que el equipo de Magento recomienda la instalación con limites de memoria mínimos de 128 MB, y doy fe de que los llega a consumir.
Conclusiones
La conclusión es clara. Magento es la mejor plataforma en cuanto a funciones, de eso no hay duda, pero la diferencia de rendimiento y de recursos necesarios la hace inviable para tiendas pequeñas en la que la inversión es limitada.
Muy bueno el artículo.