Hola,
ayer a primera hora abrí a producción mi web veslab.com desarrollada con Prestashop 1.6.1.18 y tenía 150.000 inodos (74% de la capacidad permitida). Todo perfecto, pero esta mañana la web ha dejado de funcionar y el motivo es que estaba en 210.000 inodos (105%). El problema era que los directorios cache/smarty/cache y cache/smarty/compile estaban a rebosar.
He eliminado los ficheros y los problemas aparentemente se han resuelto, además he modificado los parámetros de rendimiento dejando sólo activado el primer apartado Cache Smarty y he marcado "Nunca recompilar los archivos de las plantillas", pero para mi sorpresa llevo unas pocas horas y ya se han generado 20.000 inodos y vuelta a empezar.
Tiene algún sentido que si no hay modificaciones se vayan regenerando ficheros en la carpeta cache/smarty/compile? Tenéis alguna sugerencia para evitar que se vayan multiplicando los directorios y ficheros en esas tablas?
En algún post se sugería crear una tarea cron eliminando el contenido de los directorios ( https://www.webempresa.com/foro/42-Administraci%C3%B3n-PrestaShop/157927-Quitar-Cache-Smarty.html), pero creo que haciéndolo así se borraría el fichero index.php y por lo que he leído hay que asegurar que ese fichero no se borre para que la web funcione. Ahí ya no sé como programarlo para asegurar y además tengo la duda de como probar si el cron funciona sin tirarme a la piscina.
Os agradecería si me podéis echar una mano con el tema porque esto de ir borrando es un no parar y la verdad es que no entiendo cual es el motivo si la opción de compilar no está activada.
Muchas gracias y un saludo
URL del sitio: Contenido solo visible a usuarios registrados
Hola Dolors,
Programar una tarea cron para eliminar esa caché no tiene porque eliminar el archivo .index.php de la carpeta.
No obstante el archivo index.php está en la carpeta principal de la web, en el resto de carpetas como mucho encontrarás un index.html que está para evitar que el directorio sea listado desde el navegador y ver los contenidos, nada más, pero no dejará de funcionar la web.
Las tareas cron las debes crear en tu cPanel, Avanzada, Trabajos de cron.
En el siguiente artículo explico como se crea una tarea cron en cpanel:
- Crear una tarea cron en CPanel (I) - https://www.webempresa.com/blog/crear-una-tarea-cron-en-cpanel-i.html
No olvides poner en el primer campo una cuenta de correo en la que puedas recibir notificaciones del cron, principalmente errores de ejecución del cron en caso de producirse.
Saludos
Hola Luis,
veo que tu pones como ejemplo los siguientes casos para Joomla que entiendo podría aplicar de forma similar para Prestashop cambiando las rutas:
Para eliminar carpetas de forma recursiva y sus correspondientes archivos:
find /home/pruebasw/public_html/sport25/cache/ -mindepth 1 -type d -exec rm -rf {} ;
Para eliminar los archivos que haya directamente en la carpeta cache:
find /home/pruebasw/public_html/sport25/cache/ -mindepth 1 -type f -exec rm -rf {} ;
En mi caso en los subdirectorios cache/smarty/cache y cache/smarty/compile lo que tengo que borrar son los subdirectorios y los ficheros que cuelgan de éstos. El fichero index.php está en la raíz de cache/smarty/cache y cache/smarty/compile. Por tanto entiendo que con la primera sentencia que comentas el index.php se salvaría del borrado, cierto?
Pepe en un post sugeria las siguientes sentencias, pero éstas entiendo que sí eliminarían el dichoso index.php que en todas partes dicen que se conserve, es así?
cd /home/usuario_cpanel/public_html ; rm -rf cache/cachefs/* ; rm -rf cache/smarty/cache/* ; rm -rf cache/smarty/compile/* ;
Hay forma de poder simular lo que haría el cron sin ejecutarlo?
Y por último tu le encuentras lógica a que sin tener la opción de compilar activada se vayan generando esta barbaridad de ficheros?
Gracias y un saludo
Dolors
Hola Dolors,
Eliminar los archivos de caché de PrestaShop ¿si o no?:
Lo correcto es que no elimines esa cache ya que se genera de forma dinámica y PrestaShop la requiere para servir más rápidamente los contenidos estáticos. Si eliminas el contenido de esas carpetas PrestaShop tendrá que generar de nuevo el caching de estáticos y eso supondrá más tiempo de carga para quienes visiten de nuevo tu web.
En PrestaShop la caché se debe vaciar como indico:
1. Ve a Parámetros Avanzados, Performance.
2. Establece Force compile a Si, desactiva Caché y guarda los cambios.
3. Ve al frontoffice y recarga la página.
Ese espacio en archivos cacheados lo seguirás ocupando, de lo contrario tu web dejaría de cargar con mayor rapidez, y cada vez que elimines caché manualmente estarás forzando a que cada visitante tarde más en ver tu tienda porque su navegador tendrá que descargarse nuevamente "todos" los archivos que componen la página que visite en ese momento.
No tiene sentido hacer caching de estáticos en PrestaShop si luego quieres liberar el espacio ocupado por los archivos cacheados.
Revisa las configuraciones de smarty y analiza porque se están generando más archivos de caché de los habituales, posiblemente un módulo de estadísticas o que recopile datos de compras, clientes, productos, esté acumulando muchos registros y estos necesitan ser cacheados para mostrarlos.
El módulo de Estadísticas de PrestaShop si lo tienes habilitado deshabilitalo ya que es uno de ellos.
Saludos
Hola,
que más quisiera no tener que borrar los ficheros de las carpetas cache/smarty/cache y cache/smarty/compile, pero el crecimiento es continuo y se me va a colgar de nuevo la aplicación como ocurrió ayer por la mañana si no los voy borrando. Ayer a medianoche borré y esta mañana a primera hora ya estaba con casi 190.000 inodos.
Se me generan miles de archivos sobretodo en la carpeta cache/smarty/compile y lo que no entiendo es como puede ser si tengo marcada la opción "Nunca recompilar los archivos de las plantillas" ¿? Y si además marco Smarty cache No también, ... es como si pasase de lo que le digo.
Necesitaría que me confirméis las sentencias a ejecutar en el cron, asegurando que no me cargaré el index.php de esos subdirectorios porque en todos los posts leo que no se debe eliminar.
Por cierto el botón de vaciar cache del backoffice pasa olimpicamente de vaciar la carpeta cache/smarty/compile o es sensación mia porque se me generan tan rápido que no lo veo nunca vació si lo hago desde alli?
Es un poco desesperante porque todo va perfecto, pero se me escapa de las manos y no sé por donde tirar porque como no se haga algo se va a saturar.
Muchas gracias y un saludo
Dolors
Hola Dolors.
Los archivos de la carpeta smarty aunque los borres manualmente, se generan automáticamente nada mas un usuario acceda a la web, es decir si los eliminas y accedes a tu web, estos se generaran de nuevo.
Lo que hay que ver que extensión es la que esta generando esos archivos, no tiene por que ser cache de prestashop, puede ser de algun modulo, push, cache de terceros, Chat, etc..
Revisa las extensiones que sean de terceros como por ejemplo el chat que tienes y prueba a desactivarlos.
Un saludo
Hola Pepe,
échandole un vistazo veo ficheros que a priori no tienen ningún patrón similar, hay de todos tipos, adjunto pantallazo a ver si lo sabes ver.
Te hice caso no pasando a la versión 1.7 porque me volvía loca ya de entrada, pero no me imaginaba que la 1.6 me generase gremlins.
att.
Dolors
Hola Dolors.
Estamos tratando lo mismo en dos entradas distintas, por favor lo tratamos solo en una 😉
Nota: Los módulos los tienes que ver dentro del administrador de PS, por ejemplo veo que utilizas zooping chat
Un saludo
Hola,
disculpa lo otro lo encontré por casualidad en error_log, pero no lo relacioné con lo de la cache. El otro hilo ya está resuelto y el problema es que la plantilla ARCE no tenía actualizado el cambio que aplicaron en el default.
En cuanto a las extensiones creía que te referías a las extensiones de los ficheros, no a módulos.
Tras redireccionar el dominio y abrir la web, sólo incorporé el chat ZOPIM y el módulo de Analytics lo configuré con "v3.0 con OAuth 2.0: más potente y actualizada al día generando lo de la API".
El chat lo recuperá de otra web que tengo que funciona en la versión 1.6.0.6 y no ha dado nunca problemas (también es cierto que tiene muchas menos visitas), y el nuevo módulo Analytics sí que tuve que hacer filigranas con lo de la API porque en anteriores versiones no lo utilizo y en esto sí que no sé como me puede afectar. Sabes si lo de API es conflictivo?
De momento he desactivado el chat a ver si los gremlins no crecen tan rápido por ir descartando.
Me comentabas que es normal que los directorios de la cache se vayan generando, pero entiendo que por si mismo el sistema debe borrar periódicamente los ficheros que genera en la cache, no?
Gracias
Hola Dolors.
entiendo que por si mismo el sistema debe borrar periódicamente los ficheros que genera en la cache
Si, siempre que se modifique algún archivo vuelve a crear una nueva cache, es decir que elimina la anterior pero te crea una nueva.
De momento he desactivado el chat a ver si los gremlins no crecen tan rápido
Ok, ya nos comentas como quedo.
Otro que te puede causar ese aumento de cache es el de Google Analytics, esta clase de plugin puede causar un aumento de recursos de tu web, ya que esta continuamente recopilando datos y la verdad que teniendo el administrador de Analytics, que ademas te da mas información, no veo la necesidad de tener esta clase de modulosos instalado en la administración de prestashop
Un saludo