L’outil ab (Apache bench) mesure, entre autres, le nombre de requêtes par sec. dont est capable un serveur. Appliqué à Spip pour comparer 1.8 et 1.9b, il donne des résultats plus sévères que ceux qui ont déjà été publiés à partir de mesures basées sur wget.
La raison est simple : les mesures de temps faites avec wget comptabilisent l’écriture en fichier en plus du temps de service de page, alors que ab ne fait aucune écriture. Ce temps d’écriture peut être négligé si le temps de service est long, mais dans le cas contraire il va atténuer les rapports de temps lors des comparaisons, donc minorer le recul (ou l’avance) 1.9b.
C’est ce qui se vérifie expérimentalement. Pour la partie privée de Spip où les performances sont médiocres (environ 4 requêtes par sec. pour ma configuration), les résultats ab et wget sont presque identiques. Pour la partie publique qui est environ 10 fois plus rapide (cas du cache) ces résultats divergent, ab montrant un recul 1.9b plus important que ce que wget laissait penser.
Les résultats suivants pour différentes versions 1.9b des 2 derniers mois sont basés sur ab et sur la même base SQL que celle utilisée précédemment. Les scripts sont donnés en annexe.
Le gain est défini par le rapport (REF -TST)/TST de manière à pouvoir être comparé aux résultats précédemment obtenus avec wget. La valeur REF correspond à 1.8 et TST correspond à la valeur 1.9b SVN de la date indiquée.
A squelette constant (celui de 1.8)
A squelette constant (celui de 1.8)
Le chiffres 1.8 (REF) sont constants tout au long de la mesure. Il n’en va pas de même pour 1.9b [1] et il y a là matière à étude. Néanmoins il ressort une tendance, la 1.9b étant environ 2 à 3 fois plus lente que 1.8.
Il y a un ordre de grandeur entre la partie privée (4 requètes/sec. - 1.8) et la partie publique (40 requêtes/sec. - 1.8)
Contrairement à 1.8 qui présente une différence suivant le type de page (accueil, articles...), 1.9 est plus homogène dans son comportement.
Les mesures sont faites en local. il faut :
disposer de 2 sites Spip, l’un comme référence, l’autre comme site de test, les deux ayant un environement équivalent (SQL, Plugins, squelette). Le site de test doit être sous "check-out" svn pour une étude historique.
disposer des commandes ab et éventuellement svn [2] pour une étude historique.
installer les 3 Shell-scripts qui automatisent les comparaisons avec ab : les scripts abv et abp comparent respectivement la partie privée et publique pour 2 types de page chacunes tandis que cmphisto lance ces scripts sur une série de versions (release) SVN.
La paramétrisation de ces scripts consiste à fixer :
l’emplacement des 2 sites 1.8 et 1.9 (URL et Path) en local.
les données minimales en base (N° d’article et Login/password)
les N valeurs de release SVN qu’on souhaite étudier (ne concerne que cmphisto)
Avant de lancer un script :
fermer toutes les applications,
désactiver l’économiseur d’écran et tous les "démons" potentiellement consommateurs de ressources machine (cron...)
bien s’assurer que les 2 sites sont équivalents en termes de bases SQL , Squelettes et Plugins.
Les scripts ont été testés sous MacOS.
script cmphisto
script abv
script abp
[1] En particulier, il y a 3 valeurs anormales sur la page d’accueil 1.9 dans la période 22 Mai/8 Juin.Ces anomalies correspondent très probablement au bug identifié précédemment (introduit en 6402, corrigé en 6580)
[2] sous MacOS on peut installer svn par fink