|
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.
Logiciel | Language | Vitesse (lignes/s) | Temps pour processer un fichier de 1 Go | Temps pour processer un fichier de 1 To
|
Analog | C | 23 000 | 3 min 40 | 1 h |
Webalizer | C | 10 000 | 8 min 20 | 2 h 20 |
AWstats | Perl | 4 100 | 20 min 20 | 5 h 40 |
W3Perl | Perl | 3 500 | 23 min 40 | 6 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.
|
|
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.
|
|
|