Vitesse de W3Perl

Une des critiques les plus justifiée concernant l'utilisation de W3Perl reste la vitesse d'éxécution. Bien sur, le logiciel n'est pas capable de rivaliser avec ceux écrits en C mais les données suivantes vous montreront que W3Perl peut mener sa tache dans un temps raisonable ... et comme la vitesse des CPU devient de plus en plus rapide, le temps devient un facteur moins critique.

LogicielLanguageVitesse
(lignes/s)
Temps pour processer un fichier de
1 Go
Temps pour processer un fichier de
1 To
AnalogC23 0003 min 401 h
WebalizerC10 0008 min 202 h 20
AWstatsPerl4 10020 min 205 h 40
W3PerlPerl3 50023 min 406 h 40

Si W3Perl est un peu plus lent que AWstats, c'est parce que W3Perl produit des statistiques plus détaillées.
Ne pas oublier qu'il s'agit de temps pour calculer les statistiques dans leur totalité. Les mises à jour quotidiennes ne demandent que quelques minutes.


 Daily stats 

Ce graphe montre le temps nécessaire pour calculer les statistiques pour chaque jour d'un fichier de log. Chaque point représente une journée, donc une journée prend typiquement 3 secondes pour une moyenne de 6000 hits/jour et 15-20 secondes pour un site avec 40000 hits/jour.

w3perl cpu w3perl cpu
40 mois de données (moyenne de 6000 hits/jour) 12 mois de données (moyenne de 40000 hits/jour)

Statistiques effectuées sur un XP2500+ avec 512 Mo de RAM sous Linux.


 Reverse 
 DNS 

Le reverse dns est utilisé pour convertir les adresses IP des fichiers de log en noms de machines (et de par ce fait permet des statistiques sur les pays) mais c'est une processus tres lent. Les modules Netgeo et Geoip_free permettent de faire un travail similaire sans interroger un serveur DNS et permettent ainsi de gagner beaucoup de temps (ils ont leur propre base de conversion d'adresse IP) ... mais ce n'est pas aussi précis et mis à jour que d'interroger un serveur DNS.

(Fichier de 1.7 Go) CPU Vitesse
(lignes / sec)
Vitesse relative (%)
reverse dns desactivé 41 min 50 3550 100 %
geoip_free module 1 h 02 min 55 2280 65 %
netgeo module 1 h 04 min 15 2280 65 %
reverse dns activé 9 h 12 min 20 270 7 %


 Temps 
 de calcul 

Pour donner un ordre de grandeur, les fichiers de log compressés sont 90% plus petits ques des fichiers non compressés.
Niveau de précision : 3. Reverse DNS désactivé, stats sur les virus et détection des robots desactivées

Site Web Intervalle Taille du fichier de log
(compressé)
Taille du fichier de log
(decompressé)
Hits / jour CPU
(reverse dns desactivé)
CPU Vitesse
(lignes / sec)
W3Perl 1216 jours
(40 mois)
124 Mo 1.7 Go 6 000 41 min 50 XP2500+ (Linux) 3550
INRP 129 jours
(3 mois)
154 Mo 1.2 Go 61 000 39 min 26 XP2500+ (Linux) 3970


 Conseils 

Pour augmenter la vitesse de traitement :
  • N'utilisez pas l'option de résolution dns. Interroger un serveur dns peut prendre plusieurs secondes pour chaque requêtes malgrès le fait que les données sont stockées dans un cache ultérieurement. On peut gagner un facteur de trois à cinq en vitesse. Si vous voulez tout de même avoir les statistiques sur les pays, utilisez plutot les modules netgeo ou geoip_free.
  • La détection des robots et le filtrage des referer spam est aussi tres gourmand en vitesse.
  • Ne sélectionez pas trop de pages dans la variable @selection.
  • N'utilisez qu'une seule langue en sortie.
  • Si votre fichier de log ne contient que des adresses IP non résolues, vous pouvez utiliser avant de lancer W3Perl un outil comme Fastresolve qui traduit les adresses IP en nom de machine en recréeant un fichier de log.
back