[spip-dev] [tests-ouv3] Au revoir..

* Jean-Marie Malsacre tapotait, le 03/04/2007 08:44:

Jacques PYRAT a écrit :

* Pierre LASSALLE tapotait, le 02/04/2007 22:26:

Je ne sais pas, j'ai fait évoluer les squelettes après le passage sur ouvaton3.

Personnellement, je m'y suis un peu perdu avec ces injonctions contradictoires.

Dans un premier temps, j'ai cru lire sur les forums d'aide un encouragement à utiliser SPIP
lorsqu'on souhaitait avoir un CMS

Dans un deuxième temps, ce fut "Mettez à jour vos versions de SPIP"

Et comme généralement, le squelette ne colle plus avec la nouvelle version, on met aussi à jour le squelette.

Et je crois entendre maintenant : "Oui, mais maintenant cette dernière version est dévoreuse de ressources".

En ce qui me concerne, c'est mon squelette qui est *vraiment* gourmand (parce que puissant).
En local aussi, il est de plus lent qu'avant.

Préalable : ça fait déjà 2 ans que je me dis que mon site est trop lourd pour la plate forme ouvaton.
J'ai retardé au maximum mon départ parce que j'aime bien l'esprit coopératif d'Ouvton.
Là, je suis parti parce que j'avais besoin que mon site soit en ligne.
Ce n'est donc pas sur un coup de tête, et c'est à regret.

Bon, je me suis contenté le lire les différents posts sur ces erreurs 500 que le spip nouveau générait.

Spip est un tres bel outils, très utilisé, mais dont le developpement fait qu'il devient une usine a gaz consommatrice de ressources, voir un gaspillage de celles-ci.

Est-ce que tu pourrais être factuel ?
Comment SPIP consomme les ressources ?
Lesquelles (filer, mysql, ram, cpu...) ?

Les developpeurs de Spip mettent les hebergeurs devant le fait accompli en changeant de version sans crier gare. Ouvaton doit compter plusieurs milliers de Spip sur sa plate-forme et si 1/4 des cooperateurs passent en version 1.9x, ca fout la plateforme en l'air (ou du moins ca lui met du plomb dans l'aile).

Les dev de SPIP sont preneurs de retours, de coopération, d'amélioration.
Ils ont fait de gros effort sur la possibilité de mutualiser le code source pour faciliter la maintenance de fermes SPIP pour les hébergeurs.
Mais jusqu'à présent, ils n'ont pas eu de retour probant (quelques échanges de mails en privés à ma connaissance... tu pourrais nous en dire plus JMM ?).

Il y a une fonctionnalité de la 1.9 qui doit bouffer pas mal de ressources filer, c'est find_in_path qui n'a pas de cache :cry: .
Mais le reste ?

La 1.9.2 a changé radicalement la gestion du cache : à chaque changement dans la base (ou post dans un forum), c'est l'intégralité du cache qui est invalidé (mais pas effacé : il s'efface au fur et à mesure des recalculs).

On a beaucoup trollé sur le fait que les squelettes en cache de SPIP étaient chargés par eval() et ne bénéficiaient donc pas de l'optimisation php accellerator. Mais quels tests ont étés faits ?

Sur une palteforme mutualisée comme la notre, on ne peut pas se permettre de faire des reglages trops larges car il faudrait au moins doubler les ressources en serveurs afin de repondre au besoin de ces scripts gloutons de memoire et temps cpu. Une limitation est necessaire, forcement, et ceci afin de ne pas penaliser les autres cooperateurs qui eux n'utilisent pas spip et qui ne verraient pas d'un bon oeil le fait que leur petits copains piquent les ressources a leur detriment et ce sans contrepartie.

Mais c'est sur que, comme pour la Mondialisation, on est devant le fait accompli, et il va falloir nous organiser afin de trouver une solution.

Et c'est surtout dans ce sens (trouver des solutions) que j'aimerais bien que la discussion tourne.

- installer plus de serveurs? OK, mais qui va payer?
- proposer un hebergement en 'serveur de course' (moyennant un tarif special) pour les sites qui demandent plus de puissance/capacités?

Pourquoi pas ?
Mais sans procédure de migration manuelle SVP !

- limiter le nombre de Spip?

Impossible à imposer !

Ma position est que les techniciens d'Eiole comprennent bien qu'il n'est pas normal pour nous d'accepter qu'un nombre important de cooperateurs soient penalisés par une limitation du systeme, surtout quand on connait le remede a apporter.

Mais je refuse de partir dans une course à la debauche de moyens sous pretexte que des developpeurs d'une application, meme si c'est Spip, ne font pas tout, de leur coté, afin de limiteer la consommation de ressources de leur bébé. Ils sont entrain de scier la branche sur laquelle ils développent leurs rameaux.

Bref, c'est pas si facile que cela a gérer.

Mais si vous avez des solutions/propositions (plutot que des 'plaintes'), on peut discuter de cela en toute sérénité.

Je propose que tout comme il y a eu la feria de SPIP, la coding party, la design party, il y ait une Hosteurs Party avec Ouvaton/Eiole, Lautre.net, ... et des devs de SPIP pour permettre à chacun de mieux comprendre les besoins, les possibilités, les contraintes.

Hello

je crois qu'il est faux de dire qu'on ne fait pas "tout pour limiter
la consommation" ; mais les usages et les demandes sont de plus en
plus gourmands :
- la conformité XHTML a un coût
- la sécurité anti-js des forums a un coût
- l'extensibilité du système a un coût

Certes, plus on offre de possibilités dans la syntaxe, plus les gens
les utilisent. Mais, si on ne les offre pas en standard (en essayant
de les optimiser), c'est fait à la petite semaine, chacun dans son
coin, avec les conséquences évidentes en termes de ressources et de
sécurité. Ou alors c'est fait avec d'autres softs, dont rien ne prouve
qu'ils seront moins gourmands.

Le problème n'est donc pas une décision unilatérale des dév de SPIP,
mais bien le fait que les gens VEULENT des sites plus gourmands, SPIP
ou pas SPIP.

Mais en effet pour avancer, on a besoin de comprendre ce qui est
coûteux chez ouvaton. On a bien vu sur le "fameux hack" spikini (à
l'époque de spip-contrib), tout était coûteux ; maintenant qu'on a tué
spikini pour le remplacer par gribouille, on fait faire une importante
économie de ressources à l'hébergeur.

Si le problème est au niveau du filer, un des chantiers est
d'optimiser find_in_path() comme le dit RealET. Il possède déjà un
cache (le "noyau"), mais ça n'est pas suffisant.

Si le problème est au niveau du CPU, une piste serait de remplacer la
librairie SafeHTML par un truc beaucoup plus simple et bourrin, qui
supprimerait toutes les balises HTML des forums.

Bref, les optimisations ne peuvent se faire que problème par problème,
en analysant finement page par page ce qui est "lent"; je peux te
garantir que c'est ce qu'on fait sur nos sites (cf. par exemple
www.spip-blog.net/2006_03_14-Les-jantes-en-acier-chrome ). Mais comme
ils ne sont pas hébergés chez ouvaton, ça n'optimise évidemment pas
par rapport aux spécificités de la plateforme.

C'est là que vous pouvez agir, en identifiant les problèmes
précisément et pas en disant juste "c'est lent et gourmand".

Par ailleurs, la réorganisation du code a été faite avec l'idée que
celui-ci puisse être "centralisé" au niveau du serveur, chaque "site
sous spip" pouvant être un "client" de ce code centralisé, qui peut
donc être stocké compilé en RAM. Je ne suis pas certain de la
faisabilité de la mise en place chez ouvaton, mais la démarche était
clairement d'y intéresser les hébergeurs pour améliorer les perfs et
le service global quand on a des centaines de spip.

On en est au point actuellement où on réfléchit à gérer un service
spécifique d'hébergement de sites sous SPIP, et donc pourquoi pas au
sein de vos plateformes (ouvaton, lautre) ?

-- Fil

(fwd avec permission car oups hors-liste)

> On en est au point actuellement où on réfléchit à gérer un service
> spécifique d'hébergement de sites sous SPIP, et donc pourquoi pas au
> sein de vos plateformes (ouvaton, lautre) ?

Intéressant ça...
Les serveurs éducation nationale tournent un peu moins mal aujourd'hui
qu'hier mais si on peut défendre l'idée d'un service spécifique
d'hébergement ou pourrait les décider à "sacrifier" un serveur pour les
sites spip éducation ce qui soulagerait tout le monde (les profs-webmestre
et les admin du rectorat)...

Sais-tu déjà, dans les grandes lignes, quelles caractéristiques ce service
d'hébergement devrait avoir ?

Je pense que l'idée serait de pouvoir d'un clic créer un site, qui ne
serait qu'une "instance" d'un SPIP installé, en ayant donc un préfixe
de tables (ou une base), et un répertoire de site perso comme indiqué
dans la doc des sites mutualisés.

Ensuite, fonction du choix de l'hébergeur :
- soit une liste de squelettes préinstallés à choisir avec un truc du
genre plugin de thèmes
- soit un accès ftp au répertoire perso (avec AlternC c'est facile)

Une fonctionnalité importante serait le "bouton qui exporte le site et
rend indépendant", qui permettrait, une fois le projet un peu avancé,
de prendre son autonomie si on sent qu'on est trop à l'étroit dans les
fonctionnalités de base, et surtout après avoir pris le temps de se
familiariser avec SPIP.

-- Fil

Fil a écrit :

Hello

je crois qu'il est faux de dire qu'on ne fait pas "tout pour limiter
la consommation" ; mais les usages et les demandes sont de plus en
plus gourmands :
- la conformité XHTML a un coût
- la sécurité anti-js des forums a un coût
- l'extensibilité du système a un coût

Certes, plus on offre de possibilités dans la syntaxe, plus les gens
les utilisent. Mais, si on ne les offre pas en standard (en essayant
de les optimiser), c'est fait à la petite semaine, chacun dans son
coin, avec les conséquences évidentes en termes de ressources et de
sécurité. Ou alors c'est fait avec d'autres softs, dont rien ne prouve
qu'ils seront moins gourmands.

Le problème n'est donc pas une décision unilatérale des dév de SPIP,
mais bien le fait que les gens VEULENT des sites plus gourmands, SPIP
ou pas SPIP.
  
Ouaiiiiiiiiiiiiiiiiis !
Moi, ma feuille de style dynamique met ma machine à plat pendant 1mn30 quand tout doit etre recalculé (surtout à cause du calcul d'images de fond)
Mais ca n'est fait qu'une fois, puis le recalcul est largement plus light.
Alors quoi ?
C'est mieux ou moins bien ?
Si j'avais voulu la meme chose avec un autre CMS, j'aurais du mettre plein de code executé à chaque hit.
Si j'ai beaucoup de visites, c'est mieux, si j'ai 5 visites par jour, c'est moins bien.
Donc à mon sens, c'est mieux pour l'hebergeur.
Maintenant, c'est vrai que les quelques tests obligatoires en prod font mal au serveur.

Mais en effet pour avancer, on a besoin de comprendre ce qui est
coûteux chez ouvaton. On a bien vu sur le "fameux hack" spikini (à
l'époque de spip-contrib), tout était coûteux ; maintenant qu'on a tué
spikini pour le remplacer par gribouille, on fait faire une importante
économie de ressources à l'hébergeur.

Si le problème est au niveau du filer, un des chantiers est
d'optimiser find_in_path() comme le dit RealET. Il possède déjà un
cache (le "noyau"), mais ça n'est pas suffisant.

Si le problème est au niveau du CPU, une piste serait de remplacer la
librairie SafeHTML par un truc beaucoup plus simple et bourrin, qui
supprimerait toutes les balises HTML des forums.

Bref, les optimisations ne peuvent se faire que problème par problème,
en analysant finement page par page ce qui est "lent"; je peux te
garantir que c'est ce qu'on fait sur nos sites (cf. par exemple
www.spip-blog.net/2006_03_14-Les-jantes-en-acier-chrome ). Mais comme
ils ne sont pas hébergés chez ouvaton, ça n'optimise évidemment pas
par rapport aux spécificités de la plateforme.

C'est là que vous pouvez agir, en identifiant les problèmes
précisément et pas en disant juste "c'est lent et gourmand".

Par ailleurs, la réorganisation du code a été faite avec l'idée que
celui-ci puisse être "centralisé" au niveau du serveur, chaque "site
sous spip" pouvant être un "client" de ce code centralisé, qui peut
donc être stocké compilé en RAM. Je ne suis pas certain de la
faisabilité de la mise en place chez ouvaton, mais la démarche était
clairement d'y intéresser les hébergeurs pour améliorer les perfs et
le service global quand on a des centaines de spip.
  
J'avais lancé l'idée d'un disque dur virtuel en RAM, mais je n'ai jamais eu le temps de creuser.
Ca devrait etre interessant si il y a beaucoup de petit fichiers en cache (quand on fait plein d'inclusions comme moi)
Après, il y a plein de facons d'optimiser, mais il faudrait savoir QUOI !
Le probleme des hebergeurs, c'est qu'ils constatent un probleme à un instant T sans connaitre ce qui se passe derriere (c'est un constat, pas un reproche).
C'est sur que quand on fait une restauration de base ou quand on vient de vider le cache, ca fait beaucoup de choses un Spip.
Faut-il voir ca comme un probleme de perf pour autant....

La solution ultime d'optimisation, c'est de faire comme certain sur Agora : aspiration du site toutes les nuits et mise en ligne d'un site statique !

On en est au point actuellement où on réfléchit à gérer un service
spécifique d'hébergement de sites sous SPIP, et donc pourquoi pas au
sein de vos plateformes (ouvaton, lautre) ?

Moi aussi j'y pense depuis un moment.
Ne serait-ce que pour avoir des plugins compatibles entre eux et avec Spip....

Mais de toutes facons, si tu laisses les utilisateurs faire leurs squelettes, tu ne maitrises pas la consommation de ressources.
C'est plutot du coté d'un outil de mesure qu'il faudrait regarder (temps de calcul et RAM au recalcul et en fonctionnement)
Donc moi, je pense plutot à un hebergement "clé en main" (sans possibilité de créer ses squelettes)...

@++

C'est plutot du coté d'un outil de mesure qu'il faudrait regarder (temps de calcul et RAM au recalcul et en fonctionnement)

ça pourrait pas etre implémenté dans le débusqueur ou sous la forme d'une balise particulière ?

RB