Le 25/11/2010 11:08, Jean-Charles de Longueville a écrit :
Bonjour,

A ceux a qui cela aurait echappe, le bureau sous GNU/Linux perd de sa
reactivite quand le systeme est (relativement) charge. Il y a peu, un
patch de ~200 lignes a ete propose pour le kernel. Linus est
enthousiaste face a ce patch. Il devrait donc rapidement integre le
kernel et sera alors disponible dans vos distribution favorites.

Un developpeur de RedHat, Lennart Poettering, a repondu par une
alternative qui fait la meme chose mais en seulement 2 commandes et 4
lignes de code a ajouter dans ~/.bashrc. Cela peut sembler incroyable
mais selon les tests faits il semble bien que cela fonctionne.

/!\ ce qui suit ne fonctionne pas sur les distribution Ubuntu et derivees

Les 4 lignes de code a ajouter dans ~/.bashrc sont
<code>
if [ "$PS1" ] ; then
mkdir -m 0700 /sys/fs/cgroup/cpu/user/$$
echo $$ > /sys/fs/cgroup/cpu/user/$$/tasks
fi
</code>

et les 2 commandes a frapper etant root sont
<code>
mount -t cgroup cgroup /sys/fs/cgroup/cpu -o cpu
mkdir -m 0777 /sys/fs/cgroup/cpu/user
</code>

En outre, une reponse a Lennart estime que sa solution est superieure a
celle proposee par le patch:
"""
I've done some tests and the result is that Lennart's approach seems to
work best. It also _feels_ better interactively compared to the vanilla
kernel and in-kernel cgrougs on my machine. Also it's really nice to
have an interface to actually see what is going on. With the kernel
patch you're totally in the dark about what is going on right now.
-Markus Trippelsdorf
"""

Ceci est un resume libre de
http://www.webupd8.org/2010/11/alternative-to-200-lines-kernel-patch.html (dans
la langue de Shakepeare) ou vous trouverez la recette pour les
distributions Ubuntu.

Librement votre,

Dans tous les cas, l'idée semble être de distribuer la charge CPU entre des groupes de process plutôt qu'entre des process. Ainsi, Linux a fait le test de 64 make en parallèle (make -j 64) l'ensemble est resté fluide car les 64 process ne comptaient que pour une unité dans la demande CPU et les serveur X pour une autre unité alors que précédemment, le serveur X n'aurait eu droit qu'à 1/65e du CPU Ceci dit, on peut aussi jouer avec la commande nice en shell (j'ai toujours lancé les make par "nice -19 make" quand je n'étais pas pressé ou pour une très grosse compil)

--
Jean-Max Reymond
CKR Solutions Open Source http://www.ckr-solutions.com

Diffusez cette liste aupres de vos relations :-)
   Linux Azur : http://www.linux-azur.org
   Vous etes responsable de vos propos.
*** Merci de rediger sans SMS, ni HTML ni PJ ***



Répondre à