cancel
Showing results for 
Search instead for 
Did you mean: 

TTFB de hasta 10 segundos en una pagina de productos

TTFB de hasta 10 segundos en una pagina de productos

Buenas.

Tenemos una web preparada con los productos ya cargados para ser lanzada actualmente con Magento 2.1.9, full page cache, archivos css y js minificados y redis.

 

La web funciona correctamente pero en algunas páginas va muy lento, las que únicamente contienen productos simples o configurables puede tardar hasta 2 segundos de first time byte, pero la página que contiene exclusivamente productos tipo "bundle" es extremadamente lenta. (Mostramos 36 productos por pagina, reduciendo la cantidad de estos el tiempo baja así que tiene que ser algo relacionado con la carga de productos)

 

Utilizando el profiler de magento he podido observar que lo que mas le cuesta es el archivo:

current/app/design/frontend/Etheme/yourstore_child/Magento_Catalog/templates/product/list.phtml

y dentro de este especialmente tarda mucho:

current/vendor/magento/module-bundle/view/base/templates/product/price/final_price.phtml

 

No entiendo porque pero parece que tarda mucho en calcular el precio mínimo de estos productos bundle, no se si se debe a que tenemos demasiados productos dentro de estos.

Cambiando el tipo de precio (en vez de rango, únicamente el precio mínimo) podemos ahorrar hasta 2 segundos, pero no le veo sentido a que siga tardando en cargar estos productos.

 

Alguien se ha encontrado con esto o sabe que puede ser lo que relentiza estas páginas de sobremanera?

 

Muchas gracias,

 

17 REPLIES

Re: TTFB de hasta 10 segundos en una pagina de productos

Hola @raul_plana,


Claramente, como mencionas, esos tiempos de carga están mal.

¿Es posible probar con el theme Luma?. La idea es comenzar a descartar elementos que pudieran estar jugándote en contra (normalmente, los themes comprados suelen ser un problema en este sentido).

¿Quizás puedas revisar en Mysql si no tienes queries más lentos que X segundos? (los famosos slow-queries).

Y luego desde allí seguiría depurando un poco (pero creo que comenzaría por allí)

--
If you've found one of my answers useful, please give "Kudos" or "Accept as Solution"

Re: TTFB de hasta 10 segundos en una pagina de productos

Gracias por tu respuesta,

he hecho lo que me has sugerido y he cambiado el theme al luma para comprobar la velocidad. Ciertamente el tiempo mejora bastante, la template del tema esta ralentizando la pagina unos 2 segundos, en las paginas de categorías de productos mejora hasta 1 segundo o menos.

 

Sin embargo la pagina de la que hablo arriba (la de los productos tipo bundle) aun mejorando bastante sigue tardando unos 7 segundos, no se que esta tardando tanto en procesarla. Voy a testear si hay peticiones lentas de mySQL y a intentar optimizar el codigo del tema para reducir esos 2 segundos o todo lo que pueda.

 

Saludos,

Re: TTFB de hasta 10 segundos en una pagina de productos

He conseguido optimizar la web lo máximo, pero los producto bundle me siguen dando problemas. El calculo del precio de estos productos tarda 6 segundos de 'time to first byte', quitando este calculo (mostrando un numero directamente) la pagina va muy rápida.

 

Como es posible que nadie mas tenga este problema? Si intentas mostrar una página con unos 30 productos bundle con precio dinámico la carga es enorme.

Es por la cantidad de opciones que hay dentro de estos? Si es así, que cantidad de productos dentro de un producto bundle puede soportar magento para que no sufra esta carga?.

 

Si no hay una solución creo que voy a buscar la forma de almacenar este precio y actualizarlo por mi cuenta cada vez que se realice un cambio, porque si he de dejar que magento calcule el precio la pagina es demasiado lenta para estar en publicada.

Re: TTFB de hasta 10 segundos en una pagina de productos

Hola,

 

Has medido la carga de los procesadores al cargar alguna página de estos productos bundle ?

Van sueltos de carga ?

 

Saludosy suerte

Re: TTFB de hasta 10 segundos en una pagina de productos

Hola y gracias por tu respuesta,

 

Lo he comprobado por si acaso, pero la maquina no puede ser el problema, es mucho mas potente que lo que pide magento 2. Cuenta con 32 cores de cpu y 128GB de RAM, ademas de estar almacenado en el ssd. Al cargar la página el servidor prácticamente no se altera.

 

Si sirve como pista, monitoreando el redis al cargar la pagina me sale lo siguiente cientos de veces:

 

1522834348.914454 [0 127.0.0.1:55326] "HGET" "zc:k:f51_Zend_LocaleC_es_ES_currencynumber_" "d"
1522834348.914606 [0 127.0.0.1:55326] "HGET" "zc:k:f51_Zend_LocaleL_es_ES_symbols_" "d"

Entiendo que tiene que ver con el calculo del precio.

 

Saludos,

Re: TTFB de hasta 10 segundos en una pagina de productos

Hola,

 

Si, eso también me lo hace a mi al cargar los productos, quizas sea cosa del mismo magento

 

Estás en modo producción o developer ?

Re: TTFB de hasta 10 segundos en una pagina de productos

Hola y gracias de nuevo por responderme,

 

El caso es que el modo todavía no lo he cambiado (esta en default), la compilación de magento me da un error que no supe solventar y si cambio el modo a producción omitiendo la compilación hay detalles de las paginas que dejan de verse (en especial un plugin de sliders deja de funcionar), así que lo deje como venía para que siga funcionando.

 

Puede ser por eso? Quiero decir, cambiar de modo aumentaría el rendimiento de la pagina?

 

El error al realizar el comando de compilación es el siguiente:

> bin/magento setup:di:compile
Compilation was started.
Interceptors generation... 4/7 [================>-----------]  57% 16 secs 196.0 MiBMiB0.0 MiB
                                       
  [InvalidArgumentException]                                     
  Plugin class Vendor\Module\Plugin\WysiwygConfig doesn't exist  
                                                                 
setup:di:compile

La ruta que marca del plugin no existe, en el directorio vendor no hay ninguno llamado module, y no he encontrado nada referente a esto. Aprecio mucho tu ayuda.

 

Saludos,

Re: TTFB de hasta 10 segundos en una pagina de productos

Hola,

 

Si, la diferencia es bastante ámplia, o estoy en un server mas chico que el tuyo y no puedo mantener el modo developer activado porque casi no me deja trabajar y en modo producción es mas aceptable, esto es porque el contenido estático se genera bajo demanda en modo developer, en el modo producción se genera una sola vez.

 

Obviamente en ocasiones me toca ir al modo developer y luego regresar a produccion, principalmente cuando necesito que el contenido estático se regenere.

 

Haz probado con: bin/magento deploy:mode:set production ?

 

Te dá error de compilación ?

 

Saludos!

Re: TTFB de hasta 10 segundos en una pagina de productos

Hola @raul_plana,

 

El tema bundles, pro su propia lógica, es más pesado a diferencia de otros tipos de productos; pero lo que describes parece ser problema de otro componente.

 

Como te comenté en un principio, probaría Luma (ahí ya comentaste que has detectado diferencias de performance).

Luego, ¿pudiste revisar si habían slow-queries?.

 

¿Quizás puedas activar el profiler nativo para ver qué datos obtienes? http://devdocs.magento.com/guides/v2.2/config-guide/bootstrap/mage-profiler.html

 

Si lo activas podrás obtener el output en pantalla:

 

Área de trabajo 1_001.png

 

 

O si lo haces configuras para que envíe la información a un archivo CSV:

 

Área de trabajo 1_002.png

 

 

Si bien parece algo incompleta la información, a lo mejor quieras probar este módulo, que si bien no he probado personalmente, me parece te ayudará más a buscar el cuello de botella: https://github.com/mirasvit/module-profiler

--
If you've found one of my answers useful, please give "Kudos" or "Accept as Solution"