(Courriels de diversion: <censuraient@incitais-castratrices.com> <forgeaient@appareillais-scenario.com> <unanimement@friperies-designerions.com> <vinasses@reoperons-clarifies.com> <poinconnerions@six-helas.com> <proviennes@parquais-insonorisez.com> <racontees@fournisses-vaquent.com> <narines@escamoteras-habilitees.com> <rogneriez@deconseillee-expertisee.com> <negociants@piquetes-deliter.com> )
>>>>> "bp" == blaise <bpicinbono@worldonline.fr> writes:
bp> Lorsque j'utilise qemu, j'ai trés souvent une charge cpu autour
bp> de 99% dans le top, et la température qui monte avec. J'avais
bp> déjà constaté ça avec crossover et vmware. J'aimerai bien
bp> pouvoir limiter qemu à 50 ou 70% pour ménager la bécanne. Est-ce
bp> possible, et si oui, comment ?
ton objectif peut paraître basique, mais il n'existe pas (à ma
connaissance) de moyen simple de l'atteindre. Le scheduler standard
de Linux est bâti autour du concept de priorité pour gérer
l'utilisation de la CPU, et non autour de limites fixes de type
«donne lui 30% du temps CPU». (Ces priorités peuvent être modifiées
à l'aide des commandes "nice" et "renice"). Cette simplicité de
conception du scheduler standard lui permet d'être efficace, mais ne
répond pas à tous les besoins des utilisateurs.
Comme pistes de solution, je vois les possibilités suivantes:
* utiliser la commande "cpulimit", qui permet de limiter un
processus à un certain pourcentage d'utilisation de la CPU.
Exemple:
% cpulimit -p 666 -l 30
permet au programme dont le pid est 666 d'utiliser 30% de la CPU.
Malheureusement, cette commande n'est pas très intelligente, et ne
gère pas les process group (si le programme fork, le fils est libéré
des contraintes appliquées à son père -- vision très libérale (peu
française) des liens de paternité).
http://marlon80.interfree.it/cpulimit/
* compiler un noyau avec le patch RLIMIT_RT_CPU de Ingo Molnar, qui
rend le noyau capable de gérer la contrainte souhaitée (via le
mécanisme noyau des rlimits)
http://people.redhat.com/mingo/rt-limit-patches/
* pour «ménager ta bécanne», il est possible d'utiliser un régulateur
bien plus bourrin, qui lui interdit tout simplement de passer en
sixième vitesse: j'imagine que la machine en question est capable de
réguler sa vitesse CPU avec un mécanisme comme l'ACPI ou l'APM (cas
de la majorité des machines récentes, même celles de bureau), et que
ton noyau est compilé avec les options de gestion adéquates. Il
suffit alors de dire en tant que root
# echo 2 > /sys/module/processor/parameters/max_cstate
où le chiffre magique est soigneusement sélectionné en fonction
des différents états «cstate» gérées par ton CPU (regarder la liste
dans /proc/acpi/process/CPU0/power et lire de la documentation du
ACPI).
--
On ne connaît les choses que l'on apprivoise, dit le renard. Les
hommes n'ont plus le temps de rien connaître. Ils achètent des choses
toutes faites chez les marchands. Mais comme il n'existe point de
marchands d'amis, les hommes n'ont plus d'amis. Si tu veux un ami,
apprivoise-moi! -- Le Petit Prince
--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>