[spip-dev] Hebergement SPIP

Bonjour à tous,

Je me permet de vous contacter car Jacques Pyrat m'a indiqué qu'une volonté de travail avec les hébergeurs de sites sous SPIP existe sur cette liste.

Pour ma part j'infogére des serveurs sous linux pour héberger de nombreux sites sous spip, en mode mutualisé ou autonome.

Spip est à mes yeux une véritable usine à gaz en terme de consommation de ressources, mais il est plébiscité par de nombreux utilisateurs et par conséquent il faut s'y adapter.
Nous n'avons pas tous la chance d'avoir des sites programmés et optimisé à la main par des devs passant leur vie sur le bout de code :slight_smile:

Par conséquent ma présence ici à pour vocation d'échanger des informations ou des idées sur des façon d'optimiser spip et / ou les appli coté serveur afin d'économiser au mieux les ressources systèmes.

J'espère me présenter sur la bonne liste et que nous pourrons travailler ensemble.

sich

Spip est à mes yeux une véritable usine à gaz en terme de consommation
de ressources

Peux-tu donner des éléments objectifs (voire, chiffrés) ? On
travaille beaucoup sur la question des ressources, pour essayer de les
minimiser (tout en restant accessibles). On a donc besoin de choses
précises, plus que de considérations d'ordre général.

Nous n'avons pas tous la chance d'avoir des sites programmés et optimisé
à la main par des devs passant leur vie sur le bout de code :slight_smile:

Les devs de SPIP passent leur vie sur le bout de code :stuck_out_tongue:

Par conséquent ma présence ici à pour vocation d'échanger des
informations ou des idées sur des façon d'optimiser spip et / ou les
appli coté serveur afin d'économiser au mieux les ressources systèmes.

super ! on a nous aussi besoin de ce dialogue

-- Fil

Fil a écrit :

Spip est à mes yeux une véritable usine à gaz en terme de consommation
de ressources

Peux-tu donner des éléments objectifs (voire, chiffrés) ? On
travaille beaucoup sur la question des ressources, pour essayer de les
minimiser (tout en restant accessibles). On a donc besoin de choses
précises, plus que de considérations d'ordre général.

Nous n'avons pas tous la chance d'avoir des sites programmés et optimisé
à la main par des devs passant leur vie sur le bout de code :slight_smile:

Les devs de SPIP passent leur vie sur le bout de code :stuck_out_tongue:

Par conséquent ma présence ici à pour vocation d'échanger des
informations ou des idées sur des façon d'optimiser spip et / ou les
appli coté serveur afin d'économiser au mieux les ressources systèmes.

super ! on a nous aussi besoin de ce dialogue

-- Fil

Il va être difficile pour le moment de donner des chiffres précis, mais je peux déjà donner un ordre d'idée. Pour info le serveur n'héberge pas que du spip, mais spip représente une écrasante majorité du traffic web.

Point important le serveur traite également 170k mails par mois avec anti virus et anti spam, ce qui compte pour bcp dans la charge moyenne. Sans oublier que tous les comptes mails sont stockés dans une bdd mysql.

Descriptif serveur dans un premier temps :
  - Pentium E, 1,8Ghz (double coeur)
  - 2Go de ram
  - miroir logiciel en sata
  - charge moyenne cpu autour de 7-8% environ
  - Environ 1,1Go de ram utilisé

Les applis :
  - Apache2 : environ 32k pages vues par mois.
  - Php5
  - MySQL5 avec environ 90 requêtes secondes

J'essaye de gérer au mieux le cache mysql et j'ai également mis en place eAccelerator pour avoir un cache des scripts php appelés.

J'avais tenté de mettre en place le mod mem_cache d'apache2 mais j'ai eu des soucis sous spip avec. Je n'ai pas creusé d'avantage.

Je n'ai pas pris le temps de faire des tests précis, mais sur le même serveur la différence de temps de chargement entre un site spip et joomla (non non ce n'est pas un appel au troll) au hasard est très flagrante. Quasiment instantané pour le premier, parfois quelques secondes pour le second.
Il en va de même avec des forums phpbb assez chargés qui s'affichent très bien.

Comme dit plus haut je n'ai pas encore fais de tests poussés sur spip et j'espère avoir quelques idées de test à faire grâce à vous.

J'ai vaguement entendu parler d'un plugin spip qui génèrerai des pages statiques à partir du code spip. Ces pages étant mises à jour lorsqu'il y'a une modification je présume.
Probablement que la meilleure optimisation (pour moi) serait de travailler sur ces pages statiques, à condition qu'il n'y est pas une tonne de vérifications à chaque chargement de la page.

Concernant les devs spip effectivement ils passent leur journées dans le code :slight_smile: Mais je parlais d'un utilisateur lambda. Qui plus est il vaut mieux un site sous spip qu'une horreur mal codée à la main en php.

Merci de votre accueil :slight_smile:

sich

Fil a écrit :

Spip est à mes yeux une véritable usine à gaz en terme de consommation
de ressources

Peux-tu donner des éléments objectifs (voire, chiffrés) ? On
travaille beaucoup sur la question des ressources, pour essayer de les
minimiser (tout en restant accessibles). On a donc besoin de choses
précises, plus que de considérations d'ordre général.

Nous n'avons pas tous la chance d'avoir des sites programmés et optimisé
à la main par des devs passant leur vie sur le bout de code :slight_smile:

Les devs de SPIP passent leur vie sur le bout de code :stuck_out_tongue:

Par conséquent ma présence ici à pour vocation d'échanger des
informations ou des idées sur des façon d'optimiser spip et / ou les
appli coté serveur afin d'économiser au mieux les ressources systèmes.

super ! on a nous aussi besoin de ce dialogue

-- Fil

Il va être difficile pour le moment de donner des chiffres précis, mais
je peux déjà donner un ordre d'idée. Pour info le serveur n'héberge pas
que du spip, mais spip représente une écrasante majorité du traffic web.

Point important le serveur traite également 170k mails par mois avec
anti virus et anti spam, ce qui compte pour bcp dans la charge moyenne.
Sans oublier que tous les comptes mails sont stockés dans une bdd mysql.

Descriptif serveur dans un premier temps :
  - Pentium E, 1,8Ghz (double coeur)
  - 2Go de ram
  - miroir logiciel en sata
  - charge moyenne cpu autour de 7-8% environ
  - Environ 1,1Go de ram utilisé

Les applis :
  - Apache2 : environ 32k pages vues par mois.
  - Php5
  - MySQL5 avec environ 90 requêtes secondes

Rien de phénoménal

J'essaye de gérer au mieux le cache mysql et j'ai également mis en place
eAccelerator pour avoir un cache des scripts php appelés.

J'avais tenté de mettre en place le mod mem_cache d'apache2 mais j'ai eu
des soucis sous spip avec. Je n'ai pas creusé d'avantage.

Je n'ai pas pris le temps de faire des tests précis, mais sur le même
serveur la différence de temps de chargement entre un site spip et
joomla (non non ce n'est pas un appel au troll) au hasard est très
flagrante. Quasiment instantané pour le premier, parfois quelques
secondes pour le second.
Il en va de même avec des forums phpbb assez chargés qui s'affichent
très bien.

Ce genre de considérations n'apporte pas grand chose si ce n'est alimenter un troll justement.
En tant qu'hebergeur tu dois savoir que le temps de chargement perçu par l'utilisateur est très différent de la capacité de service du serveur et des ressources nécessitées.
Commençons par du concret avec une url de chaque exemple ?

Cédric

pas tout compris :

des soucis sous spip avec. Je n’ai pas creusé d’avantage.

Je n’ai pas pris le temps de faire des tests précis, mais sur le même
serveur la différence de temps de chargement entre un site spip

le premier

et

joomla

le second

(non non ce n’est pas un appel au troll) au hasard est très

flagrante. Quasiment instantané pour le premier

spip ?

, parfois quelques

secondes pour le second.

joomla

donc spip plus rapide que joomla ?

De la part de Cédric MORIN
Envoyé : mardi 22 janvier 2008 21:29
Ce genre de considérations n'apporte pas grand chose si ce
n'est alimenter un troll justement.
En tant qu'hebergeur tu dois savoir que le temps de
chargement perçu par l'utilisateur est très différent de la
capacité de service du serveur et des ressources nécessitées.
Commençons par du concret avec une url de chaque exemple ?

Oulà. Si on reçoit toutes les bonnes volontés chez les hébergeurs aussi
froidement, je ne suis pas certain qu'on va en garder beaucoup...

* Cédric MORIN tapuscrivait, le 22/01/2008 21:29:

Commençons par du concret avec une url de chaque exemple ?

Je ne suis pas sûr qu'une URL apporterait grand chose.

Par contre :
- nombre d'IO fichier par page demandée à apache ?
- nombre de requêtes MySQL par hit
- nombre de lecture de fichiers inexistants par hit (cf find_in_path)
- temps des IO par hit
- temps php par hit
- temps mysql par hit
- temps de queue par hit

Avoir aussi un retour sur les requêtes coûteuses pour MySQL avec l'explain correspondant pour savoir quels index rajouter (au passage, j'avais une fois rajouté un index (j'ai oublié lequel) sur une table pour booster le site : ça marchait, mais une mise à jour de SPIP en 1.9.3 SVN fin juillet (depuis une 1.9.1) ne marchait plus : comme si SPIP détectait l'index et produisait une requête différente et foireuse dans ce cas).

Olivier G. a écrit :

De la part de Cédric MORIN
Ce genre de considérations n'apporte pas grand chose si ce n'est alimenter un troll justement.
En tant qu'hebergeur tu dois savoir que

Oulà. Si on reçoit toutes les bonnes volontés chez les hébergeurs aussi
froidement, je ne suis pas certain qu'on va en garder beaucoup...

Disons qu'il y a un temps de préchauffage pour la mise en route
du dialogue.

Un peu d'huile entre les rouages alors :
Merci Mr l'hébergeur de venir à la rencontre de la spipforge !
:slight_smile:

JL

Enfin soyons sérieux, on ne va pas avoir une discussion constructive sur la bases de considérations du genre
"si je visualise cette page ça va plus vite que celle la, preuve que SPIP est une grosse usine à gaz assez innéficace et consommatrice de ressources"
J'ose espérer que les hébergeurs se basent sur des considérations et des mesures plus objectives.
En l'absence de telles mesures, je proposais au moins que l'on puisse constater les cas tests cités en exemple, car on peut déjà voir et comprendre beaucoup de choses.

Cédric

Olivier G. a écrit :

De la part de Cédric MORIN
Envoyé : mardi 22 janvier 2008 21:29
Ce genre de considérations n'apporte pas grand chose si ce n'est alimenter un troll justement.
En tant qu'hebergeur tu dois savoir que le temps de chargement perçu par l'utilisateur est très différent de la capacité de service du serveur et des ressources nécessitées.
Commençons par du concret avec une url de chaque exemple ?
    
Oulà. Si on reçoit toutes les bonnes volontés chez les hébergeurs aussi
froidement, je ne suis pas certain qu'on va en garder beaucoup...

héhéhé, faut dire que l'entrée en matière genre "j'aime pas ce que vous faites, mais je suis obligé de l'utiliser" était pas mal non plus.
:slight_smile:

Concretement, il faut bien comprendre ce qui se passe pour savoir ce qu'on mesure, surtout si on compare à d'autres produits.
Dans Spip, vu du serveur, il y a plusieurs choses :
1- la compilation des squelettes : cette operation n'est faite qu'une fois, il faut donc l'exclure des tests et travailler sur des squelettes compilés.

2- le rechargement du cache : il n'est fait qu'une fois toutes les X secondes ou invalidation (modification)
=> execution du squelette compilé => traitement PHP + acces base de donnée + ecriture des fichier (vient en plus de l'etape suivante)

3- l'assemblagede la page : c'est le plus important à mesurer, c'est ce qui est fait à chaque hit
=> lecture de fichiers (plus ou moins nombreux selon les squelettes) + execution si il y a du PHP ou des balises dynamiques dedans

4- le "SPIP_CRON" : si il reste du temps d'execution après avoir servit la page, Spip execute ses taches de fond (nettoyage, envoi de mails...), ce qui charge le serveur mais ne comptera pas dans le temps de chargement de la page pour l'utilisateur.

les points 1 et 4 sont amha à exclure des tests
Pour simuler une utilisation, il faut donc jouer un scenario qui fasse appel aux points 2 et 3 dans des proportions proches de la réalité.
Mais ces proportions varient selon les squelettes et l'utilisation.
sur un site à fort trafic mais se concentrant sur le meme contenu, le cache jouera pleinement son role et et la page ne sera rechargée qu'une fois sur 1000.
Alors qu'avec le meme trafic, un autre site, recalculera peut etre en moyenne toutes les 3 affichages car les visiteurs visiteront des pages differentes.

Quand on se situe au niveau de l'hebergeur, on voit bien que le "pire", c'est plein de sites avec peu de trafic : les pages sont recalculées quasiment à chaque fois => pas d'utilisation du cache
Mais le gros avantage, c'est que plus le trafic d'un site augmente, plus le ratio recalcul/utilisation du cache diminue.
Pour faire un test réaliste, il faut donc faire varier ce ratio en meme temps qu'on augmente la charge.
mais dans quelle proportion ? de combien à combien ?
il faut voir en moyenne combien de fois chaque page est appelée par heure et savoir comment sont reglés les caches pour connaitre le ratio
ca depend des sites hebergé...

En plus, chaque squelette, chaque inclusion, définissent les temps de mise en cache et la complexité des requete au recalcul.
Si je fais une grosse boucle récursive avec 3 boucles contenant des regexp dedans et que je mets un cache à 0, forcement, ca va etre tres gourmand !
A coté de ca, je peux faire un cache recalculé toutes les semaines pour faire mon menu...

Bref, Spip etait plus proche d'un langage que d'un produit, on peut auditer le code (les squelettes) pour voir s'il n'y a pas de mauvaises pratiques, en optimiser certains au niveau de l'algorithme, d'autre sur l'exploitation du cache, mais je ne vois pas en quoi ca aiderait à optimiser Spip lui meme.
Je pense que les hebergeurs souffrent plus de mauvaises utilisation que du code lui meme.
Le code lui meme est sans doute optimisable, mais je ne pense pas que l'observation de sites en prod renseigne beaucoup, sauf grosses boulettes de construction de requetes.
C'est plutot de la reflexion sur les des cas particuliers qui pourrait aider à optimiser le "moteur"

mes 2 sous.
@++

* RealET tapuscrivait, le 23/01/2008 10:59:

* Cédric MORIN tapuscrivait, le 22/01/2008 21:29:

Commençons par du concret avec une url de chaque exemple ?

Je ne suis pas sûr qu'une URL apporterait grand chose.

Par contre :
- nombre d'IO fichier par page demandée à apache ?
- nombre de requêtes MySQL par hit
- nombre de lecture de fichiers inexistants par hit (cf find_in_path)
- temps des IO par hit
- temps php par hit
- temps mysql par hit
- temps de queue par hit

et voici un patch bien sale de SPIP pour compter :
- le nombre d'appel à find_in_path
- le nombre de recherche infructueuse d'un fichier.
Pour info, chez moi sur le squelette SoyezCreateurs, ça me donne :
En mode recalcul :
nb_find_in_path 7596
nb_find_in_path_echec 12103

Et si en cache :
nb_find_in_path 3636
nb_find_in_path_echec 9413

Est-ce que c'est normal d'avoir des chiffres aussi importants ?

_test_nb_find_in_path.patch (1.26 KB)

* RealET tapuscrivait, le 23/01/2008 13:57:

* RealET tapuscrivait, le 23/01/2008 10:59:

* Cédric MORIN tapuscrivait, le 22/01/2008 21:29:

Commençons par du concret avec une url de chaque exemple ?

Je ne suis pas sûr qu'une URL apporterait grand chose.

Par contre :
- nombre d'IO fichier par page demandée à apache ?
- nombre de requêtes MySQL par hit
- nombre de lecture de fichiers inexistants par hit (cf find_in_path)
- temps des IO par hit
- temps php par hit
- temps mysql par hit
- temps de queue par hit

et voici un patch bien sale de SPIP pour compter :
- le nombre d'appel à find_in_path
- le nombre de recherche infructueuse d'un fichier.
Pour info, chez moi sur le squelette SoyezCreateurs, ça me donne :
En mode recalcul :
nb_find_in_path 7596
nb_find_in_path_echec 12103

Et si en cache :
nb_find_in_path 3636
nb_find_in_path_echec 9413

Est-ce que c'est normal d'avoir des chiffres aussi importants ?

Oups : en rechargeant la page une 2e fois sans var_mode=recacul, j'obtient :
nb_find_in_path 62
nb_find_in_path_echec 358

C'est mieux...

Olivier G. a écrit :

De la part de Cédric MORIN
Envoyé : mardi 22 janvier 2008 21:29
Ce genre de considérations n'apporte pas grand chose si ce
n'est alimenter un troll justement.
En tant qu'hebergeur tu dois savoir que le temps de
chargement perçu par l'utilisateur est très différent de la
capacité de service du serveur et des ressources nécessitées.
Commençons par du concret avec une url de chaque exemple ?

Oulà. Si on reçoit toutes les bonnes volontés chez les hébergeurs aussi
froidement, je ne suis pas certain qu'on va en garder beaucoup...

héhéhé, faut dire que l'entrée en matière genre "j'aime pas ce que vous
faites, mais je suis obligé de l'utiliser" était pas mal non plus.
:slight_smile:

Concretement, il faut bien comprendre ce qui se passe pour savoir ce
qu'on mesure, surtout si on compare à d'autres produits.
Dans Spip, vu du serveur, il y a plusieurs choses :
1- la compilation des squelettes : cette operation n'est faite qu'une
fois, il faut donc l'exclure des tests et travailler sur des squelettes
compilés.

2- le rechargement du cache : il n'est fait qu'une fois toutes les X
secondes ou invalidation (modification)
=> execution du squelette compilé => traitement PHP + acces base de
donnée + ecriture des fichier (vient en plus de l'etape suivante)

3- l'assemblagede la page : c'est le plus important à mesurer, c'est ce
qui est fait à chaque hit
=> lecture de fichiers (plus ou moins nombreux selon les squelettes) +
execution si il y a du PHP ou des balises dynamiques dedans

4- le "SPIP_CRON" : si il reste du temps d'execution après avoir servit
la page, Spip execute ses taches de fond (nettoyage, envoi de mails...),
ce qui charge le serveur mais ne comptera pas dans le temps de
chargement de la page pour l'utilisateur.

les points 1 et 4 sont amha à exclure des tests
Pour simuler une utilisation, il faut donc jouer un scenario qui fasse
appel aux points 2 et 3 dans des proportions proches de la réalité.
Mais ces proportions varient selon les squelettes et l'utilisation.
sur un site à fort trafic mais se concentrant sur le meme contenu, le
cache jouera pleinement son role et et la page ne sera rechargée qu'une
fois sur 1000.
Alors qu'avec le meme trafic, un autre site, recalculera peut etre en
moyenne toutes les 3 affichages car les visiteurs visiteront des pages
differentes.

Quand on se situe au niveau de l'hebergeur, on voit bien que le "pire",
c'est plein de sites avec peu de trafic : les pages sont recalculées
quasiment à chaque fois => pas d'utilisation du cache
Mais le gros avantage, c'est que plus le trafic d'un site augmente, plus
le ratio recalcul/utilisation du cache diminue.
Pour faire un test réaliste, il faut donc faire varier ce ratio en meme
temps qu'on augmente la charge.
mais dans quelle proportion ? de combien à combien ?
il faut voir en moyenne combien de fois chaque page est appelée par
heure et savoir comment sont reglés les caches pour connaitre le ratio
ca depend des sites hebergé...

En plus, chaque squelette, chaque inclusion, définissent les temps de
mise en cache et la complexité des requete au recalcul.
Si je fais une grosse boucle récursive avec 3 boucles contenant des
regexp dedans et que je mets un cache à 0, forcement, ca va etre tres
gourmand !
A coté de ca, je peux faire un cache recalculé toutes les semaines pour
faire mon menu...

Bref, Spip etait plus proche d'un langage que d'un produit, on peut
auditer le code (les squelettes) pour voir s'il n'y a pas de mauvaises
pratiques, en optimiser certains au niveau de l'algorithme, d'autre sur
l'exploitation du cache, mais je ne vois pas en quoi ca aiderait à
optimiser Spip lui meme.
Je pense que les hebergeurs souffrent plus de mauvaises utilisation que
du code lui meme.

Oui, mais il peut être intéressant de veiller à ce que les mauvaises utilisations les plus fréquentes ne soient pas trop néfastes.
De ce point de vue, on manque certainement du recul de faire tourner des sites spip réalisés par des développeurs non avancés.

Le code lui meme est sans doute optimisable, mais je ne pense pas que
l'observation de sites en prod renseigne beaucoup, sauf grosses
boulettes de construction de requetes.

Cas typique qui m'est arrivé en ce début d'année, et qui a valu un correctif sur la branche stable :
-> entre 2 crons consecutifs le cache grossit enormement du fait d'un robot (site à nombre d'url possible énorme comme un sedna, ou un site embarquant le comarquage service public) ;
-> apres, lors du cron de purge du cache, il y a un timeout au moment du calcul de la taille du cache
-> plus de purge du cache
-> chaque cron sollicite des ressources file system importantes, et mets le serveur à genoux, load qui augmente, indisponibilité, etc ...

Vécu sur un serveur dédié avec file system local (HD) ou les plus gros caches (parmi 40 sites spip) avaient atteint 6Go, 3Go et 800Mo et mettaient le serveur à genou toutes les heures.

C'est plutot de la reflexion sur les des cas particuliers qui pourrait
aider à optimiser le "moteur"

cqfd

Je te prie de croire que ces points font l'objet d'une analyse avant sortie de version stable, et que la fonction find_in_path a depuis longtemps été identifiée comme un maillon stratégique sur lequel nous dépensons régulièrement de l'énergie.
Utilise un profileur de code comme Zend qui te permettra de manipuler des grandeurs plus intéressantes comme le temps consommé par chaque fonction etc ...
Par ailleurs, il est très clair que l'on optimise le noyau, mais qu'après un plugin peut massacrer toute la perf de SPIP en deux lignes de code.
J'en prends pour témoin Accès restreint par groupe que je n'utilise jamais, mais sur lequel je suis tombé dans le cadre d'une prestation d'optimisation d'un site SPIP réalisé par une 'agence'. Le plugin, avant mes corrections, ralentissait par un coeff 3 le temps de service des page.
C'est en cela aussi que peuvent se distinguer fortement les contributions et plugins et la qualité de leur support.

En substance, parler de perf dans l'absolu ne veut rien dire, il faut commencer par définir le périmètre logiciel complet considéré.
Cédric

Yo,

C’est extrêmement intéressant comme expérience et surement pas unique.
D’où la question, existe t-il quelques principes de base pour écrire des plugins ou autres squelettes et qui permettraient d’éviter de telles dégradations (enfin dans une certaine mesure) ?

A+
Eric

Cédric MORIN a écrit :

En substance, parler de perf dans l'absolu ne veut rien dire, il faut commencer par définir le périmètre logiciel complet considéré.
Cédric

Bonjour,

En effet au vu du nombre de plugins possible et du risque qu'ils soient responsable d'un ralentissement, il faudrait établir une base "saine" sur laquelle faire des tests pour se faire une idée précise.

Il est certain que si un site dispose d'un plugin très gourmand il ne rendra pas justice à Spip.

Sinon je m'excuse si mon précédent message a pu être mal interprété, je ne remet pas en cause le travail qui est fait sur spip ni les améliorations qui lui sont apportées.

A mes yeux, pour ce que je connais de spip et des cms en général, le cache est important en terme de charge machine.
Si j'ai bien suivis sur spip le cache est invalidé dès qu'il y'a une modif ou qu'il expire (logique). Mais cela concerne t'il le cache de tout le site ou page par page ?

Peut être devrais je installer un spip en version svn sans aucun plugin et tester les temps de chargement.

sich

sich a écrit :

Cédric MORIN a écrit :
  A mes yeux, pour ce que je connais de spip et des cms en général, le cache est important en terme de charge machine.
  
si il est effectivement utilisé, dans le cas contraire, c'est fatalement moins performant qu'une lecture directe en base...

Si j'ai bien suivis sur spip le cache est invalidé dès qu'il y'a une modif ou qu'il expire (logique). Mais cela concerne t'il le cache de tout le site ou page par page ?
  

Jusqu'en 1.9.2, c'etait fait par un systeme d'invalideur sur les articles et rubriques, une modif sur un article invalidant aussi la rubrique
Mais on parle de cache, pas de page (qui peut etre un cache en incluant d'autres).

En SVN, le comportement est une expiration de tous les caches à chaque modif.
Le gain sur la gestion du cache (qui en est du coup grandement simplifié) compense apparement les pertes sur les recalcul "inutiles".
Ca sera donc plus performant sur des sites à faible trafic mais sans doute moins sur des sites à gros trafic mais bougeant beaucoup (contenant un forum par exemple)
Mais le cache est du coup mieux synchronisé.

Dans les fait, on ne constate pas de baisse de perfs, d'autant qu'on a maintenant des armes pour figer certains caches (fast cache / Expresso) au besoin.
Comme on parle ici de sites à gros trafic, qu'on ait 1/1000 ou 2/1000 qui se tapent le recalcul, ca ne change effectivement pas grand chose en moyenne

Mais il est possible de revenir à l'ancien systeme (si j'ai bien suivi).

Peut être devrais je installer un spip en version svn sans aucun plugin et tester les temps de chargement.
  
il y a les démos en ligne avec des base de test qui pourrait etre utile (http://demo.spip.org/spip.php?article31)
Il faudrait sans doute partir de ce dump et scripter une navigation basique + 1 avec ajout dans le forum et jouer des 2 dans diffrentes proportion pour voir le temps de chargement résultant.

mais je ne sais pas ou se trouve la base propre de demo...

@++

En SVN, le comportement est une expiration de tous les caches à chaque modif.
Le gain sur la gestion du cache (qui en est du coup grandement simplifié) compense apparement les pertes sur les recalcul "inutiles".
Ca sera donc plus performant sur des sites à faible trafic mais sans doute moins sur des sites à gros trafic mais bougeant beaucoup (contenant un forum par exemple)

Sauf que là tu oublies les sites à faible trafic bougeant beaucoup, pour lesquels toute page visitée risque d'être recalculée, avec du coup un cache inutile, et surtout des temps d'obtention des pages supérieurs à ce qu'on avait en 1.9.2, non ?

-Nicolas

Nicolas Hoizey a écrit :

En SVN, le comportement est une expiration de tous les caches à chaque modif.
Le gain sur la gestion du cache (qui en est du coup grandement simplifié) compense apparement les pertes sur les recalcul "inutiles".
Ca sera donc plus performant sur des sites à faible trafic mais sans doute moins sur des sites à gros trafic mais bougeant beaucoup (contenant un forum par exemple)
    
Sauf que là tu oublies les sites à faible trafic bougeant beaucoup, pour lesquels toute page visitée risque d'être recalculée, avec du coup un cache inutile, et surtout des temps d'obtention des pages supérieurs à ce qu'on avait en 1.9.2, non ?
  

Si le traffic est faible, les pages etaient deja recalculées à chaque fois. Et tu épargne toute l'usine à gaz des invalideurs.
Cédric

Sauf que là tu oublies les sites à faible trafic bougeant beaucoup, pour lesquels toute page visitée risque d'être recalculée, avec du coup un cache inutile, et surtout des temps d'obtention des pages supérieurs à ce qu'on avait en 1.9.2, non ?
  

Si le traffic est faible, les pages etaient deja recalculées à chaque fois. Et tu épargne toute l'usine à gaz des invalideurs.

Je suis tout à fait d'accord qu'on simplifie cette gestion des invalideurs, que je ne trouvais de toute façon pas satisfaisante.

Mais sur un site à faible trafic qui bouge beaucoup, il peut tout de même être intéressant d'avoir un recalcul des pages les plus demandées (la page d'accueil en général) temporisé plutôt que systématique.

Le temps d'obtention de la page peut être plus important pour l'expérience utilisateur que la totale fraicheur des infos qui s'y trouve, surtout à quelques heures prêt.

Surtout que quand on dit "site qui bouge", ça peut être un site où l'activité rédactionnelle est faible, mais abonné à pas mal de flux RSS, donc si chaque nouvel article syndiqué invalide tout le cache, c'est AMHA pénalisant pour le visiteur.

-Nicolas