Auteur Sujet: [Astuce] Eviter que la table sessions ne grossisse démesurément.  (Lu 2115 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne shaitan

  • Habitué
  • **
  • Messages: 142
    • Passion Xbmc
Bonjour,

Sachant qu'il y a pas mal d'utilisateurs de SMF ici, je voudrais partager cette petite astuce qui permet de résoudre un problème souvent fâcheux, à savoir la table sessions qui grossit constamment et nécessite des opérations de maintenance fréquentes dans l'administration.

Si vous avez la chance d'avoir accès à la configuration de php.ini il vous suffit de décommenter
session.gc_probability avec comme valeur = 1

Dans le cas contraire, éditez votre fichier index.php
Après

<?php
Ajoutez:
@ini_set('session.gc_probability', '1');

Cela fait deux jours que je teste cette solution et ma table ne fait que quelques kio ce qui est bien mieux qu'avant.


cl1-sq4 , serveur de fichiers 4 et mon Fai est Free.
Et mon site est là: http://passion-xbmc.org/forum/
Quand à mes requêtes elles sont optimisées.

Hors ligne Mr K.

  • Connaisseur
  • ***
  • Messages: 422
    • http://
Re : [Astuce] Eviter que la table sessions ne grossisse démesurément.
« Réponse #1 le: 15 novembre 2008 à 14:24:58 »
Ok, merci.
peux croire sans voir, peux voir sans croire !

Hors ligne marckisscool

  • Dr TeiGnEuX
  • Expert
  • ****
  • Messages: 549
  • Dr TeiGnEuX
    • smfgratuit.fr
Re : [Astuce] Eviter que la table sessions ne grossisse démesurément.
« Réponse #2 le: 18 novembre 2008 à 10:43:03 »
Bonjour,

Pour information le session.gc_probability n'intervient que sur les fichiers de sessions trop vieux, il n'est pas lié à la base de données.....
L'opération de maintenance dans smf n'intervient pas sur cette base de données.
Le nettoyage s'effectuant automatiquement dans le script smf, ce nettoyage dépend entièrement de la valeur de la durée de vie des sessions indiquée dans les paramètres.
Pour ma part je pense plutôt qu'il s'agit d'un problème lié à l'optimisation des tables qui ne se fait pas correctement dans le script smf, en effet la table de session est une des tables qui est la plus sollicitée et qui possède le plus d'erreur d'enregistrement, ce qui peut bloquer des tentatives de manipulations (effacement ajout lecture) sur les enregistrements.
L'astuce est d'utiliser le cron phpnet pour réparer les tables 2 à 3 fois par jour.
En une semaine cela donne aucune opération de maintenance et table de session à 100Ko

Hors ligne shaitan

  • Habitué
  • **
  • Messages: 142
    • Passion Xbmc
cl1-sq4 , serveur de fichiers 4 et mon Fai est Free.
Et mon site est là: http://passion-xbmc.org/forum/
Quand à mes requêtes elles sont optimisées.

Hors ligne marckisscool

  • Dr TeiGnEuX
  • Expert
  • ****
  • Messages: 549
  • Dr TeiGnEuX
    • smfgratuit.fr
http://forum.ubuntu-fr.org/viewtopic.php?pid=850029:
Citer
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.

http://www.simplemachines.org/community/index.php?topic=107704.0
Citer
Probably you are running your forum on Debian/Ubuntu server. By default, a garbage collection is disabled on Debian's PHP. In effect (when database driven sessions option is checked) smf_sessions table isn't automatically cleared and grows with every new visit.

Mouaaaaa, maintenant apache va effacer de lui même les tables de sessions pour le compte d'un script tiers, purée on se régale là  ^_^ ^_^ ^_^
Bon un peu plus sérieusement, cela est relatif au fichier généré par apache pour les sessions comme sur free par exemple. Apache ne va pas, pour tes beaux yeux, vider ta table de session pour te faire plaisir. En faite cette fonction force le garbage-collector qui a pour but d'éliminer les fichiers de session trop vieux, il ne fait pas que ça mais c'est ce qui nous interesse là.
Le vidage de la table de session est faite par le script smf, qui vérifie les paramètres de sessions de ton administration avec la session que tu viens d'initialiser et celle se trouvant dans la table, puis il purge en fonction de la durée d'expiration.
Je n'utilise pas cette fonction et je n'ai pas ce problème de remplissage de table mais j'ai une réparation de table qui passe 3 fois par jour.

Mes sources:
http://www.php.net/manual/fr/session.configuration.php
Pour info le fonctionnement d'un garbage-collector : http://fr.wikipedia.org/wiki/Ramasse-miettes
Le code directement dans les fichiers de smf
« Modifié: 18 novembre 2008 à 17:21:39 par marckisscool »

Hors ligne shaitan

  • Habitué
  • **
  • Messages: 142
    • Passion Xbmc
Re : [Astuce] Eviter que la table sessions ne grossisse démesurément.
« Réponse #5 le: 18 novembre 2008 à 20:03:44 »
Le lien du forum ubuntu fonctionne à nouveau.
En attendant j'ai re-vérifié: ma table reste à quelques ko alors qu'avant elle grossissait constamment.
Et je ne suis pas le seul à utiliser cette solution ni a faire le même constat.
« Modifié: 18 novembre 2008 à 20:06:22 par shaitan »
cl1-sq4 , serveur de fichiers 4 et mon Fai est Free.
Et mon site est là: http://passion-xbmc.org/forum/
Quand à mes requêtes elles sont optimisées.