Depuis la mise à jour vers Ubuntu Intrepid, notre bon vieux P4 se traînait. Il montrait des faiblesses à la lecture de vidéos, et surtout plus énervant pendant les rafraichissements de fenêtres. Le seul moyen de lui donner un peu de fraicheur était de mettre en route Compiz, via les effets visuels.
Problème habituel, sur notre carte graphique (Intel 82865G), Compiz ne parvient pas à gérer les deux sessions X simultanées dont nous avons besoin.
Le fait que Compiz résoud le problème est un indice, cependant. Indice que quand la majeure partie des tâches graphiques est envoyée au GPU, les choses se passent mieux.
Ah, et Facebook aussi était très lent.
En fait, le CPU semblait avoir pris un coup, comme le montre ce graphique issu de Munin. Désolé pour les blancs, l’ordinateur était éteint la nuit la semaine dernière.
Si vous n’aviez pas deviné, la mise à jour vers Intrepid, c’était le 5 dans la journée.
Et dans la même journée, j’ai essayé de remettre en route l’hyperthreading (CPU au-delà de 100%), ce qui comme d’habitude a causé un crash après quelques heures d’utilisation. Il faut remonter à des noyaux dans le début de la série des 2.16 pour ne pas rencontrer ce problème.
J’m'égare, là.

Si un process avait été la source de nos problèmes, system ne serait pas monté aussi haut. En fait, il semblerait que toutes les taches soient devenues plus gourmantes. Ou bien que le CPU a perdu globalement de la puissance.
Voilà, c’est dit.
CPU frequency scaling.
Le gouverneur par défaut chez Ubuntu est ondemand (les choix sont userspace, powersave, conservative, ondemand, performance), ce qui faisait que le CPU passait beaucoup de temps à 325 MHz. Certes il remontait en puissance à la demande, mais pas de manière assez réactive pour que les performances graphiques ne s’en ressentent.
Pour tester l’effet d’un changement de gouverneur, sous root :
# echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Pour le rendre permanent, s’il semble répondre au problème, il suffit de rajouter cette ligne dans le /etc/rc.local, avant le exit 0:
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Bon, il faut quand même se tenir au courant des dernières faillites aux US, mais ça a fait quand même bien rire votre serviteur.