Re: beaucoup de sessions
Cerdic <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <7df14614-13ee-4446-8399-013e2249279f@Spark> |
Oui une bonne pratique perf c’est de stocker les sessions PHP dans une db sqlite, ce qui se fait via le php.ini : session.save_handler = sqlite session.save_path = "/path/sessions.db" -- Cédric Le 4 avr. 2020 à 16:39 +0200, Fil <[email protected]>, a écrit : > hello, > > sur le site du diplo on s'est trouvés avec un répertoire de sessions comportant 100000 fichiers et plus, et du coup je me suis rendu compte que preg_files est très lent (le temps de recherche des sessions de l'auteur en train de se loger est > 30s et la page part en timeout). > > du coup réparation dans l'urgence de inc/session : > // liste des sessions > - $sessions = preg_files(_DIR_SESSIONS, '/' . $id_auteur . '_.*\.php$'); > + $sessions = glob(_DIR_SESSIONS . $id_auteur . '_*.php'); > > > Une des causes de l'énorme nombre de sessions, c'est que lors du passage à SPIP 3 les sessions anonymes autrefois gérées par SPIP sont devenues des sessions PHP ; > mais quand tu en as des 100 000, ça fait des 100k fichiers, SPIP ou PHP c'est pareil de ce point de vue (et moi j'ai fait l'erreur d'indiquer à PHP de stocker ses sessions dans le répertoire des sessions spip) > > Bruno signale > https://git.spip.net/spip/spip/pulls/21 > mais ici je souligne que les sessions anonymes sont légitimes et qu'on ne veut pas les effacer juste pour nettoyer, au risque de déconnecter des tas de gens. > > Le fond du problème c'est (peut-être?) qu'il faudrait gérer les sessions dans une petite base sqlite ; c'est pas un gros dev mais il faut être bien armé mentalement pour s'y attaquer :) > > Ou alors, il existe peu-être un module apache-php qui met les sessions en sqlite mais je ne l'ai pas trouvé. > > > _______________________________________________ > liste: https://listes.rezo.net/mailman/listinfo/spip-dev > doc: https://www.spip.net/ > dev: https://core.spip.net/ > irc://irc.freenode.net/spip