Autor Tema: Borrando enormes cantidades de archivos en Linux  (Leído 3019 veces)

0 Usuarios y 5 Visitantes están viendo este tema.

Desconectado stoke

  • Sv Member
  • ***
  • Mensajes: 342
Borrando enormes cantidades de archivos en Linux
« : enero 11, 2013, 05:21:57 pm »
Tengo un directorio que mes a mes acumula +/- 16GB de cookies (sesiones de PHP) y estoy borrando los archivos antiguos.

Código: [Seleccionar]
find . -type f -mtime +30 -delete
Tengo Centos 64bits,  Phenon X4 y 12GB de RAM, corro este proceso en una hora sin carga, aun asi toma demasiado tiempo.

Hay alguna forma de hacerlo mas rapido?

Desconectado g00mba

  • The Communiter-
  • *
  • Mensajes: 14587
  • SOMOS LEGION
    • ALABADO SEA MONESVOL
Re:Borrando enormes cantidades de archivos en Linux
« Respuesta #1 : enero 11, 2013, 05:23:42 pm »

parti la carga en grupos pequeños y correlos paralelos.

Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Re:Borrando enormes cantidades de archivos en Linux
« Respuesta #2 : enero 12, 2013, 10:17:00 am »
Que extraño por dos cosas:

1. que raro que no tenes configurada la limpieza automatica de sesiones que viene en PHP, si es mucha carga solo dejalo con un 1% de probabilidad y estaria bien.

2. Un sitio que genere tantas sesiones ya no deberia de usar sesiones basadas en archivos, te recomiendo que uses memcache como backend para las sesiones, cuando se hizo este simple y sencillo cambio en [PublicidadDescarada]flor360.com[/PublicidadDescarada] la velocidad de respuesta del sitio aumento considerablemente debido a este simple cambio.

Digo "simple y sencillo cambio"  porque solo basta con que cambies esto en tu php.ini:

Código: [Seleccionar]
session.save_handler = file

por
Código: [Seleccionar]
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"

Desconectado stoke

  • Sv Member
  • ***
  • Mensajes: 342
Re:Borrando enormes cantidades de archivos en Linux
« Respuesta #3 : enero 12, 2013, 11:00:38 am »
Que extraño por dos cosas:

1. que raro que no tenes configurada la limpieza automatica de sesiones que viene en PHP, si es mucha carga solo dejalo con un 1% de probabilidad y estaria bien.

2. Un sitio que genere tantas sesiones ya no deberia de usar sesiones basadas en archivos, te recomiendo que uses memcache como backend para las sesiones, cuando se hizo este simple y sencillo cambio en [PublicidadDescarada]flor360.com[/PublicidadDescarada] la velocidad de respuesta del sitio aumento considerablemente debido a este simple cambio.

Digo "simple y sencillo cambio"  porque solo basta con que cambies esto en tu php.ini:

Código: [Seleccionar]
session.save_handler = file

por
Código: [Seleccionar]
session.save_handler = memcached
session.save_path = "127.0.0.1:11211"



De hecho la probabilidad del recolector de basura la deje en 0 a proposito, luego con un cron job limpio las sesiones antiguas una vez al dia, ya tiene mas de un año asi y funciona bien, el inconveniente es que tarda mucho tiempo borrar las sesiones antiguas, pense que si la limpieza no se ejecuta ahorro tiempo al cargar la pagina, tambien considere manejar las sesiones con MySQL para ya tiene suficiente carga.

Hablando del memcache...

- Al cambiar el session save handler a memcache, disminuiria el total de RAM disponible?
- Necesito compilar apache con memcache?
- En algun momento memcache hace un volcado de datos, pensando en un backup?


Gracias por el dato.

Desconectado vlad

  • Global Moderator
  • The Communiter-
  • *
  • Mensajes: 6351
    • Qualium.net
Re:Borrando enormes cantidades de archivos en Linux
« Respuesta #4 : enero 13, 2013, 07:48:00 am »


De hecho la probabilidad del recolector de basura la deje en 0 a proposito, luego con un cron job limpio las sesiones antiguas una vez al dia, ya tiene mas de un año asi y funciona bien, el inconveniente es que tarda mucho tiempo borrar las sesiones antiguas, pense que si la limpieza no se ejecuta ahorro tiempo al cargar la pagina, tambien considere manejar las sesiones con MySQL para ya tiene suficiente carga.

Hablando del memcache...

- Al cambiar el session save handler a memcache, disminuiria el total de RAM disponible?
- Necesito compilar apache con memcache?
- En algun momento memcache hace un volcado de datos, pensando en un backup?


Gracias por el dato.

- Al cambiar el session save handler a memcache, disminuiria el total de RAM disponible?:
Fijate que de ram utilzaria lo mismo que estas usando de disco duro para las sesiones ahorita con la consideracion que si usas una probabilidad de limpieza alta tendrias mucha menos informacion guardada y sin costo de acceso a disco. De todas formas igual no te sirven que esten guardadas por meses si el gc_maxlife es de 1 o 2 dias.

Con todo y todo no creo que mantengas mas de 128MB en memcache de sesiones utiles.

- Necesito compilar apache con memcache?
No, mas bien instalar la extension de memcache para PHP (te recomiendo la extension "memcached" sobre la que se llama "memcache". Instalar el programa "memcache" y asegurarte que funcione como servicio. Luego ajustas la cantidad de memoria a usar (digamos 512MB para empezar) esta memoria no se reserva al inicio, si no que la va consumiendo segun sea necesario.

- En algun momento memcache hace un volcado de datos, pensando en un backup?
No, memcache esta pensado para datos volatiles (como variables/sesiones), reiniciar el servidor te haria perder los usuarios logeados actualmente.

Podrias implementar tu propio backup pero seria mas trabajo.

No te vayas a engañar con MemcacheDB, Couchbase, redis, etc. que al final viene a ser lo mismo que usar MySQL