Bonjour à tous !
J’ai mis en place un serveur apache 2.2 + mongrel (load balancer) +
support php + subversion qui est maintenant fonctionnel.
J’ai remarqué dans le repertoire tmp/ de l’application que les fichiers
de sessions rails “ruby_sess” s’accumulaient. Après un savant calcul,
j’estime qu’Ã cette vitesse, mon serveur devrait exploser dans 557
heures 33 minutes et 42 secondes !!! Non, sérieusement, quelqu’un
connaît-il une solution “propre” (utilisant rake ?) pour nettoyer tout
ça ?
pour moi, solution propre != find -type f -name “ruby_sess*” -exec rm -f
{} ;
On est pas des barbares
Merci par avance.
pour moi, solution propre != find -type f -name “ruby_sess*” -exec rm -f {} ;
il me semble que la solution propre n’est pas si loin, il doit y avoir
en plus
un mtime qui traine dedans (-;
… et tu rajoutes tout ça dans un cron. (style toutes les minutes tu
supprimes
les sessions qui n’ont pas bougé depuis plus de 30mn)
gUI
–
Pour la santé de votre ordinateur, préférez les logiciels libres !
Guillaume B. : (05 61) 19 40 65 / bureau 602N
Sinon y a ce plugin :
http://www.realityforge.org/articles/2006/03/01/removing-stale-rails-sessions
Je l’ai pas récupéré pour voir à quoi ressemble le code ; mais il doit
pas aller chercher bien loin, et doit donc pouvoir, à mon avis, être
utilisé sans trop de risque
Benjamin.
Guillaume B. a écrit :
Jérémy :
J’ai remarqué dans le repertoire tmp/ de l’application que les
fichiers de sessions rails “ruby_sess” s’accumulaient. Après
un savant calcul, j’estime qu’Ã cette vitesse, mon serveur devrait
exploser dans 557 heures 33 minutes et 42 secondes !!! Non,
sérieusement, quelqu’un connaît-il une solution “propre” (utilisant
rake ?) pour nettoyer tout ça ?
Tu peux stocker les sessions dans ta base avec ActiveRecordStore
(il y a aussi SQLSessionStore de Stefan K. si tu utilises MySql),
plutôt que sur le disque.
Il faut décommenter la ligne dans config/environment.rb :
config.action_controller.session_store = :active_record_store
Créer une migration avec : rake db:sessions:create
Puis créer une méthode de classe pour
CGI::Session::ActiveRecordStore::Session qui effacera
les anciens enregistrements.
La tâche rake db:sessions:clear, elle, les supprime toutes.
pour moi, solution propre != find -type f -name “ruby_sess*” -exec
rm -f {} ;
On est pas des barbares
En effet, on n’utilise pas l’option -exec mais plutôt xargs(1).
Mais si utilises Pstore, tu peux faire rake tmp:sessions:clear
Et cron pour automatiser le tout.
– Jean-François
Perso, j’utilise memcache. Facile, rapide, …
A voir sur le fantastique blog de Chris Wansrath découvert grace a cette
mailing list (Nicolas P. je crois) :