Le noyau 2.6.30 n'est pas encore sorti en version finale mais c'est déjà trop la fête. J'ai testé le noyau 2.6.30-rc8 mis en paquet par un développeur Debian pour l'architecture ARM (oui faut le faire à la main car ARM n'est pas compilé par défaut sur le dépôt experimental des noyaux Debian...). Et le moins que l'on puisse dire c'est que les résultats sont impressionnants. Je me plaignais depuis longtemps du débit avec les disques durs, et je fais donc les tests à chaque installation d'un nouveau noyau (à tout autre logiciel égal, le serveur étant laissé en Debian Lenny depuis sa sortie).

Résultats avant le changement de noyau :

(en raid5) Timing buffered disk reads:   46 MB in  3.00 seconds =  15.31 MB/sec
(en raid10) Timing buffered disk reads:   36 MB in  3.08 seconds =  11.68 MB/sec

Résultats après le changement de noyau :

(en raid5) Timing buffered disk reads:  110 MB in  3.04 seconds =  36.14 MB/sec
(en raid10)  Timing buffered disk reads:   96 MB in  3.01 seconds =  31.86 MB/sec

Plus du double, ça fait beaucoup de différence. Comme hier soir c'était également « jour de vérification du raid » (premier samedi du mois quoi...) j'ai pu sentir la différence. Si par exemple au mois d'avril les logs indiquaient :

 
Apr  5 18:51:31 floolf kernel: md: md2: data-check done. 

Aujourd'hui j'ai eu le droit avant le réveil à ceci :

 
Jun  7 09:15:18 floolf kernel: md: md2: data-check done. 

Dans les deux cas même heure de départ vers 1h du matin :)

L'explication de cette énorme amélioration se trouve en surveillant les interruptions. Sur les noyaux précédents j'obtenais des graphiques avec munin de plus de 1500 interruptions par seconde lors de la reconstruction du raid. Désormais ça plafonne à 150, réduisant énormément la part du processeur utilisée pour les traiter. Dix fois moins d'interruptions pour un travail supérieur, je ne dis pas non. Reste à savoir ce qui coinçait exactement et pourquoi cette optimisation possible n'avait pas été repérée avant... En attendant je remercie mille fois la qualité de l'équipe Debian en ARM et les développeurs du noyau.