Jump to content

Recommended Posts

Buenas compañeros:

 

Estamos configurando la base de datos para las tiendas prestashop y nos encontramos con que en las tiendas de mas de 30.000 productos se ralentiza bastante.

 

 

 

Tras 2 días intensos trabajando en ello, solo hemos aumentado el rendimiento en un 25%.

 

En Prestashop 1.4.x funciona sin ningún problema, pero en esta tienda que esta en 1.5.4.1 en concreto, nos es imposible aumentar la velocidad. Hasta 8.000 Productos va rápida.

 

Así que la petición de ayuda va encaminada a determinar que necesidades necesita Prestashop 1.5.x en las bases de datos y que estructura tiene, para determinar si le podemos añadir un indice a las tablas de Prestashop para aumentar el rendimiento o es mejor separar la base de datos y redirigiría a un servidor MySQL en exclusiva.

 

El problema de la segunda opción es que encarece el precio de hospedaje al cliente.

 

Por favor, si alguien sabe decirnos que características diferencian a Pretashop 1.4x de 1.5x en cuanto al tratamiento y funcionamiento con las bases de datos, y como podemos adaptar MySQL al funcionamiento que requiere Prestashop.

 

Por cierto, en el mismo hosting están alojadas dos tiendas 1.5.x y comparten el servidor MySQL tanto para las tiendas como para el Panel Plesk y Apache.(un VPS para dos tiendas) En la de 8.000 Productos el rendimiento es bueno, pero en la de 30.000 como habréis visto no es tan rápido.

 

Gracias por vuestra colaboración.

 

PDT: Edito: Las tiendas estan en desarrollo con el cache en OFF y Forzar Compilación en ON.

Esto es solo para comprobar la velocidad de acceso al base de datos.

Edited by OlivierJM (see edit history)
Link to comment
Share on other sites

Te aconsejo que habilites el modo debug y veas las queries que se ejecutan y el tiempo que tardan. Yo me he encontrado con queries con RAND() que eternizaban la carga cuando había muchos productos.

 

Buenas:

 

Gracias por tu rápida respuesta. ¿Te refieres a las peticiones de Presatashop habilitando los errores de Prestashop no?

 

O al de MySQL?

 

 

En Prestashop no puedo activarlo ya que es la tienda del cliente.

Link to comment
Share on other sites

Buenas, hablo desde la ignorancia ya que tengo muy muy poca experiencia con prestashop pero..

 

Es posible dividir los productos en 2 bases de datos diferentes de modo que no sobrecargue una base de datos? lo que viene siendo dividir el catalogo en 2.

 

 

Repito, ignoro si esto es posible, estoy destripando prestashop ahora y me queda mucho que aprender.

 

Saludos.

Link to comment
Share on other sites

Buenas, hablo desde la ignorancia ya que tengo muy muy poca experiencia con prestashop pero.. Es posible dividir los productos en 2 bases de datos diferentes de modo que no sobrecargue una base de datos? lo que viene siendo dividir el catalogo en 2. Repito, ignoro si esto es posible, estoy destripando prestashop ahora y me queda mucho que aprender. Saludos.

 

Buenas Antonio. Precisamente estaba escribiendo en tu Post.

 

No que yo sepa. Desde Prestashop solo puedes elegir una base de datos, otra cosa es el tema de multitienda, pero aun no he llegado.

 

Lo que si se puede es dividirla carga en uno, 2, 3 servidores o los que quieras configurando MySQL.

Edited by OlivierJM (see edit history)
Link to comment
Share on other sites

Buenas Antonio. Precisamente estaba escribiendo en tu Post. No que yo sepa. Desde Prestashop solo puedes elegir una base de datos, otra cosa es el tema de multitienda, pero aun no he llegado. Lo que si se puede es dividirla carga en uno, 2, 3 servidores o los que quieras configurando MySQL. En tu caso lo tienes bien, creas un VPS e instalas MySQL y lo dejas en exclusiva como servidor de base de datos. Después apuntas la tienda a la base de datos que crees en el VPS. De esta manera, con una base de datos trabajas con el panel, ya sea Plesk o Cpanel, Apache, etc... y por otro lado la base del VPS trabaja en exclusiva para la tienda. Por cierto, mírate la pagina web y dime como la ves de velocidad, que mi conexión ADSL es de 1M, a ver como la ves de velocidad. http://emilio.acuen.com.es/web/

 

 

Es algo raro, entras en una categoria y tarda (mas o menos como me pasa en la mia) y pasas a ver otro y carga bien, y de buenas a primera cambias y vuelve a tardar.

 

Edito, al abrir ficha de un producto es eterno...

Edited by antonio4287 (see edit history)
Link to comment
Share on other sites

Es algo raro, entras en una categoría y tarda (mas o menos como me pasa en la mia) y pasas a ver otro y carga bien, y de buenas a primera cambias y vuelve a tardar. Edito, al abrir ficha de un producto es eterno...

 

Pues ya tiene que ser tema de la configuración de tablas de Prestashop. Hay ya no entro sin asegurarme si puedo añadir un indice a esas tablas o no, y si tiene algún efecto o no en Prestashop.

 

Eso ya es tema también de la configuración y la manera de crear las tablas Prestashop. Y reparar una base de datos tiene su trabajo.

 

A ver si cuando se pongan los parámetros correctos para producción se acelera mediante cache. (Forzar compilación en OFF y cache en ON, ademas del resto de configuración de rendimiento de PrestaTienda.

Link to comment
Share on other sites

Buenas compañeros: Estamos configurando la base de datos El problema de la segunda opción es que encarece el precio de hospedaje al cliente. Por favor, si alguien sabe decirnos que características diferencian a Pretashop 1.4x de 1.5x en cuanto al tratamiento y funcionamiento con las bases de datos, y como podemos adaptar MySQL al funcionamiento que requiere Prestashop. datos.

 

¿Has mirado la documentacion de prestashop: http://doc.prestashop.com/ ?

Link to comment
Share on other sites

¿Has mirado la documentacion de prestashop: http://doc.prestashop.com/ ?

 

Si y no me explica nada al respecto. :blink:

 

Cambios entre PrestaShop 1.4 y 1.5

La Ejecución automática () y autoExecuteWithNullValues ​​() están en desuso. Usted debe reemplazarlos con insert () y update () , respectivamente.

El prefijo de tabla ya no es obligatorio para el delete () método.

El execute () método no devuelve un recurso de SQL, pero un valor booleano. Utilice query () para obtener un recurso.

PDO y apoyo MySQLi.

Edited by OlivierJM (see edit history)
Link to comment
Share on other sites

Si y no me explica nada al respecto. :blink: Cambios entre PrestaShop 1.4 y 1.5 La Ejecución automática () y autoExecuteWithNullValues ​​() están en desuso. Usted debe reemplazarlos con insert () y update () , respectivamente. El prefijo de tabla ya no es obligatorio para el delete () método. El execute () método no devuelve un recurso de SQL, pero un valor booleano. Utilice query () para obtener un recurso. PDO y apoyo MySQLi.

 

¿Es una pregunta o una información?

 

Gracias !

Link to comment
Share on other sites

Buenas: Gracias por tu rápida respuesta. ¿Te refieres a las peticiones de Presatashop habilitando los errores de Prestashop no? O al de MySQL?
En Prestashop no puedo activarlo ya que es la tienda del cliente.

 

Me refiero al debug de queries que hay en Prestashop. Otra opción es revisar el log de slow queries de MySQL. Como tú eres el hosting, revisa como lo puedes habilitar. Yo lo pido directamente y no sé como lo hacen :P

Edited by joseantgv (see edit history)
Link to comment
Share on other sites

Me refiero al debug de queries que hay en Prestashop. Otra opción es revisar el log de slow queries de MySQL. Como tú eres el hosting, revisa como lo puedes habilitar. Yo lo pido directamente y no sé como lo hacen :P

 

Si lo tengo habilitado en my.cnf

 

y miro también a través del comando: mysqld y me marca que esta todo correcto.

 

Para el log de mysql lo tendre que revisar.

 

Cuales son los valores normales para Prestashop en el log, y como corriges los slow queries de Prestashop, a través de crear indices en Mysql de las tablas mas lentas o modificando el código en Prestashop?

 

Muchísimas gracias por tu ayuda

Edited by OlivierJM (see edit history)
Link to comment
Share on other sites

Si lo tengo habilitado en my.cnf y miro también a través del comando: mysqld y me marca que esta todo correcto. Para el log de mysql lo tendre que revisar. Cuales son los valores normales para Prestashop en el log, y como corriges los slow queries de Prestashop, a través de crear indices en Mysql de las tablas mas lentas o modificando el código en Prestashop? Muchísimas gracias por tu ayuda

 

Activa esto:

 

define('_PS_DEBUG_PROFILING_', true);

 

Siempre lo he solucionado tocando la query, no he revisado índices.

Link to comment
Share on other sites

Activa esto:
 define('_PS_DEBUG_PROFILING_', true); 

Siempre lo he solucionado tocando la query, no he revisado índices.

 

En el archivo defines.inc.php verdad? de la carpeta config.

 

Voy a probarlo, pero no tengo ningun error en las paginas. a ver que sale y ya te cuento.

 

Muchisimas gracias y si me necesitas en algo que pueda ayudarte aqui me tienes ;)

Link to comment
Share on other sites

Hola

Estoy probando navegar la pagina http://emilio.acuen.com.es/web/ y va bastante bien, has tocado algo?

 

Si entro en subcategoria http://emilio.acuen.com.es/web/101-estacion-de-trabajo cuando entro en los productos va bien

 

pero si estoy en la categoria http://emilio.acuen.com.es/web/7-Software y quiero entrar a los productos va un poco mas lento.

 

Edited by DiegoD (see edit history)
Link to comment
Share on other sites

En el archivo defines.inc.php verdad? de la carpeta config. Voy a probarlo, pero no tengo ningun error en las paginas. a ver que sale y ya te cuento. Muchisimas gracias y si me necesitas en algo que pueda ayudarte aqui me tienes ;)

 

Si, en ese fichero, disculpa.

 

Ahí no aparecen los errores sino las queries de cada página y los tiempos de ejecución. Es un informe muy bonito para optimizar tiendas.

Link to comment
Share on other sites

Hola Estoy probando navegar la pagina http://emilio.acuen.com.es/web/ y va bastante bien, has tocado algo? Si entro en subcategoria http://emilio.acuen.com.es/web/101-estacion-de-trabajo cuando entro en los productos va bien pero si estoy en la categoria http://emilio.acuen.com.es/web/7-Software y quiero entrar a los productos va un poco mas lento.

 

Perdon por el retraso en responder.

 

Estoy con las tablas de caracteristicas. Ya me queda menos.

La ventaja es que estoy en dos proyectos, y puedo modificar el rendimiento según RAM de cada uno. :P

 

 

Si, en ese fichero, disculpa. Ahí no aparecen los errores sino las queries de cada página y los tiempos de ejecución. Es un informe muy bonito para optimizar tiendas.

 

Muchisimas gracias a los dos.

 

Ahora mismo estoy liado con el VPS. En cuanto lo acabe me centrare en este proyecto un poquito mas.

Gracias a vuestra ayuda, ademas podre optimizar Prestashop y las famosas queries (query en MySQL) y consultas o peticiones en cristiano :P

Link to comment
Share on other sites

Buenas señores:

 

Ante todo daros las gracias por vuestros aportes y colaboración.

 

Ya por fin he terminado de establecer las bases para las tiendas Prestashop y el funcionamiento de las tablas y su incorporación en la base de datos.

 

Despues de tener toda la tienda instalada, hay que establecer unos valores aproximados y altos.

 

¡EDITO Y ELIMINO URL YA NO DISPONIBLES!

 

Acabo de terminar la configuración completa del servidor. :P que dos días madre!!! :rolleyes:

 

Al tener unos valores altos, veréis como tarda mas en abrir. Después notareis que va mas rápida.

 

Ahora, gracias a la ayuda de joseantgv, puedo activar el debug de prestashop y corregir todos los errores. Después,

la base de datos me dice que tablas son las que mas datos insertan, borrar, etc...

 

Las tablas que realizan mas entradas, eliminaciones o actualizaciones, son las que hay que optimizar, ya que borra las tablas, pero el espacio queda hay disponible para ser utilizado posteriormente, pero eso implica dejar demasiados campos vacíos.

 

Una vez tengamos esto echo, tan solo hay que dar un repaso a la base de datos cada semana, una vez al mes, o cada 6 meses según las actualizaciones que realicemos de productos, de precios o de catálogos.

 

Para cada tienda, hay que establecer las tablas que se van a usar, así que es un trabajo complejo la primera vez, después es cosa de 5 minutos.

 

Un saludo y gracias a todos.

Edited by OlivierJM (see edit history)
Link to comment
Share on other sites

Trabajo de chinos ni que lo digas, despues de en su momento "criticar" a Oliver, desde aqui le doy las gracias una vez mas, y comentarle que ya lleva algun cliente mas de camino ;)

 

 

Por suerte o desgracia, segun se mire y segun quien mire, tengo muchos posibles clientes alrededor, y aunque no se si es bueno o malo, donde hago el cambio no suelen tardar en migrar ellos tambien.... asi que cuenta con algun otro ;)

 

Fusión Mensajes:

 

Ahora, eso si.... yo me quejaba de la web antigua porque me tardaba en cargar 8000 productos..... (6-8 minutos..) ahora me da lugar a tomar café mientras tanto.... :unsure:

  • Like 1
Link to comment
Share on other sites

Buenas señores:

 

Ante todo daros las gracias por vuestros aportes y colaboración.

 

Ya por fin he terminado de establecer las bases para las tiendas Prestashop y el funcionamiento de las tablas y su incorporación en la base de datos.

 

Despues de tener toda la tienda instalada, hay que establecer unos valores aproximados y altos.

 

ejemplo: http://www.sxjgt.com (Es pagina de contenido adulto, una tienda Sex Show)

 

Acabo de terminar la configuración completa del servidor. :P que dos días madre!!! :rolleyes:

 

Al tener unos valores altos, veréis como tarda mas en abrir. Después notareis que va mas rápida.

 

Ahora, gracias a la ayuda de joseantgv, puedo activar el debug de prestashop y corregir todos los errores. Después,

la base de datos me dice que tablas son las que mas datos insertan, borrar, etc...

 

Las tablas que realizan mas entradas, eliminaciones o actualizaciones, son las que hay que optimizar, ya que borra las tablas, pero el espacio queda hay disponible para ser utilizado posteriormente, pero eso implica dejar demasiados campos vacíos.

 

Una vez tengamos esto echo, tan solo hay que dar un repaso a la base de datos cada semana, una vez al mes, o cada 6 meses según las actualizaciones que realicemos de productos, de precios o de catálogos.

 

Para cada tienda, hay que establecer las tablas que se van a usar, así que es un trabajo complejo la primera vez, después es cosa de 5 minutos.

 

Un saludo y gracias a todos.

 

Hoy es 22/06/2013

 

Mirad la tienda hoy y Mañana y comparáis : http://www.sxjgt.com.

 

PDT: Cuando termine con http://www.sxgt.com estaremos trabajando con esta: http://emilio.acuen.com.es/web/. Mientras la podéis

 

mirar y comparar. La segunda tiene los parámetros al revés, carga muy rápido pero después va muy lenta. :D Así que muy pronto tendremos el equilibrio.

 

Yo soy un total novato y comento:

 

¿Me lo puedes explicar todo de forma mas detallada?

 

Gracias.

Link to comment
Share on other sites

Ahora, eso si.... yo me quejaba de la web antigua porque me tardaba en cargar 8000 productos..... (6-8 minutos..) ahora me da lugar a tomar café mientras tanto.... :unsure:

 

Si, la verdad es que no se puede optimizar todo.

 

Te tardara hasta media hora en cargar los 8.000 productos, pero no te dará error. :rolleyes: Paciencia

Link to comment
Share on other sites

Yo soy un total novato y comento:

 

¿Me lo puedes explicar todo de forma mas detallada?

 

Gracias.

 

Hola Felix:

 

Es complicado explicar a todos los usuarios que empiezan en prestashop a meterse en cambiar cosas en las bases de datos y animarlos a coger un VPS o un servidor y gastarse mas dinero en algo que no le van a sacar el maximo rendimiento, ya que por un lado van desatender su tienda y en tenerla al día para su objetivo que es vender, y por otro lado van a echarle horas y días y meses a configurar un VPS.

 

Finalmente Antonio a optado por lo mas logico que es encargar que se lo configure. Han sido dos días de muchas horas de trabajo y aun quedan unas cuantas cosas por hacer.

 

Breve mente te puedo hacer un resumen ya que tu no eres un novato y sabes mas que yo de Prestashop, aun que tu modestia me gusta.

 

1- Actualizar el servidor y el sistema operativo. Según el proveedor, tendremos que actualizar los repositorios y añadir los de las fuentes oficiales del SO (SO= sistema operativo, Centos, Ubuntu, Fedora, Debian, etc).

 

2- Instalar todas las extensiones y librerías que queramos utilizar en PHP. Segun sistema operativo la forma de actualizar sera una u otra, ya sea sudo apt-get installphp-mcrypt para Ubuntu, yum installphp-mcryp para Centos, etc... Ya cada usuario las que quiera añadir según el desarrollo posterior. Por ejemplo para utilizar ciertas aplicaciones de gráficos, un arquitecto puede necesitar las librerías GD de Tiddy por ejemplo. Para Prestashop como norma general no.Imprescindible FasCGI correctamente instalado, con sus librerias adicionales.

 

3- Instalar el sistema de cache que vamos a utilizar. Según cada uno, el que quiera. Entre APC,memcache, etc... yo instalo personalmente, y eso ya sobre gustos, memcache y Xcache, aun que normalmente utilizare Xcache y memcache lo dejo por si un cliente lo solicita. Que piden APC, pues desisntalo Xcache ya que no son compatibles.

Volvemos a las mismas, según SO, yum install o sudo apt-get install Xcache.

 

4- Reiniciamos el servidor o el VPS que para el caso es lo mismo (nos evitamos reiniciar cada uno de los servicios por separado)

y ahora vamos añadiendo la ruta de todo lo instalado para que trabaje con Apache y php. Por ejemplo le decimos a php que tiene una nueva extensión Xcache y que la tiene que utilizar, en el caso del server de Antonio añadi esto al php.ini:

zend_extension = /usr/lib/php5/20090626+lfs/xcache.so

(por cierto, se me olvido agregar esa linea por despiste y después no encontraba en donde esta el fallo, ya que no se veía la tienda y al venir de una configuración anterior Xcache era indispensable para que funcionara)

 

5- Ya lo tenemos todo configurado he instalado, comenzamos por modificar los parámetros de httpd.conf (apache) para indicarle las rutas de las carpetas. Aquí depende del SO y de la instalación, si elegimos home o var para el sistema de archivos, o hicimos otro tipo de particiones de inicio, etc... para evitar el error:

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden:

 

6- Ahora vamos a configurar php.ini con los parámetros globales que queremos darle a nuestra tienda, ya sea limite de memoria, máximos archivos a subir a la vez, tiempo máximo de ejecución, etc... Por ejemplo, en mi configuración suelo establecer pocos archivos al mismo tiempo para evitar la sobrecarga del servidor en importaciones masivas CSV y conseguir que en el caso del server de Antonio, mientras esten trabajando las dos paginas de sus diferentes dominnio, una carga de CSV no relentice a los clientes que están comprando en las otras tiendas. La pega, que un CSV de 8.000 productos por ejemplo, tardara sobre media hora. La ventaja, que siempre estará la tienda disponible. Ahora ya cada uno según sus necesidades lo modifica al gusto.

Yo no puedo decir configura a estos parametros o a los otros sin saber a que vas a dedicar el servidor ni cuantos dominios y tiendas vas a tener.

 

7- Como trabajaremos con Prestashop 1.5.x y no con 1.4.x los parametros anteriores no nos serviran de mucho, Nos va a dar Error 500 Internal Server Error al cargar 250 productos si en lugar de trabajar como modulo de Apache trabajamos en FastCGI.

Si optamos por Apache en lugar de FastCgi en las versiones 1.5x de Prestashop, tendremos que adaptar mucho codigo de Prestashop para tapar y parchear temas de permisos. Se hace "Casi" imprescindible como le comentaba a Victor, el moderador, trabajar con FasCGI.

¿Como lo solucionamos?

Pues configuramos el modulo FastCGI aumentando sus valores hasta adecuarlos como hicimos con PHP.ini, teniendo en cuenta que son valores diferentes.

 

8- Instalamos la tienda y al meterle mas de 8.000 productos comienza a ralentizarse demasiado.

¿Que hacemos ahora?

Pues simplemente vamos a modificar los parametros de MySQL para adaptarlos a las necesidades de nuestra tienda. Según nuestras necesidades, lo configuramos con los valores necesarios tal y como se indica aqui:

http://dev.mysql.com...figuration.html

 

9- Después de leerte toda la guía oficial de MySQL, puedes empezar a hacer las pruebas de rendimiento, limpiar la base de datos y depurar las tablas. A mí me a costado adaptarme de MySQL 4 a la versión 5, pero solo es cuestión de modificar

algunos nombres y comandos. Para el que empieza de cero es complicado.

 

10- Todo el tiempo que dediques a esto, se lo vas a quitar a tu tienda. ¿Te merece la pena o es mejor contratar los servicios de un tercero como ha echo Antonio?

 

Un saludo Felix y espero que te ayude a empezar. ;)

 

 

 

Hola

Estoy probando navegar la pagina http://emilio.acuen.com.es/web/ y va bastante bien, has tocado algo?

 

Si entro en subcategoria http://emilio.acuen....cion-de-trabajo cuando entro en los productos va bien

 

pero si estoy en la categoria http://emilio.acuen..../web/7-Software y quiero entrar a los productos va un poco mas lento.

 

Buenas Diego:

 

Ya esta optimizada la base de datos para la tienda. Ahora ya ha aumentado el rendimiento.

Falta que active el cache, forzar compilación en OFF y que suba las fotos de los productos para poder revisar en un par de días la evolución de rendimiento del servidor en conjunto.

 

El sistema de cache Xcache cuando lo active, ara que valla mas rápido y que sea mas dinámica.

Link to comment
Share on other sites

Buenas noches cuando son las 2:16 de la madrugada del 23/06/13: Viva San Juan!!! :P

 

Acabo de mandar un email a un cliente, y he pensado que era conveniente publicarlo en referencia a memcache y Xcache:

 

Buenas noches Daniel:

 

Acabo de configurar memcache subiendo los parametros.

No sabia que utilizaras memcache, ya que la gran mayoria usan Xcache.

Los dos estan habilitados en el servidor y puedes elegir tanto uno como otro. Por lo que he provado, creo que con memcache

carga mas rapido la pagina y te va muy bien.

 

Si ves que el rendimiento cae un poco, me avisas y subo la memoria de memcache o la borro para empezar de nuevo.

Esto se debe a que el espacio en memoria esta limitado. Esta memoria utilizada puede estar llena de antiguas paginas que

han sido modificadas (productos que cambias por otros) y ocupan un espacio que hace mas pesada la memoria cache

y al final el resultado es peor que sin cache.

Cuando eso pase, (unos 2 u 6 meses segun el trafico o cambios de productos) borramos el cache y listo.

 

Un saludo.

 

Pues bien, estas son las paginas, ambas alojadas en el mismo servidor, en el hosting compartido Acúen, con los mismos parámetros (Hosting Ecomerce Inicio) y con el mismo tipo de tienda Prestashop 1.5.4.1 pero con la única diferencia del sistema de cache:

 

memcache: http://www.labatidora.es/ (pagina sex shop no apta para menores)

 

Xcache: EDITO: ENLACE NO DISPONIBLE ademas, esta os dije que estaría lista hoy. Y podéis comparar de ahora al funcionamiento de antes.

 

Ahora podéis comparar por vosotros mismos. ;)

 

un saludo y feliz San Juan!!!

 

PDT: Mirar el rendimiento general, por que la segunda tienda tiene categorías y enlaces que corregir de código de Prestashop y depurarlo así como errores varios. Esta en desarrollo todavia XD :D hay que ser pacientes.

Edited by OlivierJM (see edit history)
Link to comment
Share on other sites

San Juan es mañana, día 24.

 

Bueno Joseantgv, yo lo que se es que trabajo y veo a todo el mundo hoy día 23 ir a la playa XD :D

Así que no se si sera el 24, pero la gente lo celebra hoy 23 como si se acabara el mundo mañana XD.

 

Pues eso, feliz celebración hoy de San Juan, y felicidades a los Juanes ,mañana 24 ;)

  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...