OVH Cloud OVH Cloud

multiprocesseur, qemu

4 réponses
Avatar
R12y
Bonjour,

Sur la MLde qemu j'ai vu passer un fil de discussion qui disait en gros
que une instance de qemu ne savait pas encore se "répartir" sur plusieurs
processeurs. Mais quand j'y pense c'est peut-être à l'OS de
répartir cela... non? Quel est le rôle d'un OS si ce n'est pas de gérer le
temps (et les ressources, donc la répartition entre les processeurs
présents) qu'on doit attribuer à chaque process?
Mais bon, soit, un qemu ne va que sur un processeur.
Maintenant, supposons que je lance un deuxième qemu, et que j'ai un AMDx2.
Est-ce qu'on est certain que les deux qemu vont aller sur les deux
processeurs, un sur chacun? (je pense qu'on n'est sûr de rien)

--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum

4 réponses

Avatar
Fabien LE LEZ
On Sat, 20 May 2006 03:08:30 +0200, R12y
:

Mais quand j'y pense c'est peut-être à l'OS de
répartir cela... non?


Oui et non. Il me semble qu'un processus peut être réparti sur
plusieurs processeurs, mais pas un thread.
Du coup, si un logiciel donné est mono-thread (ou quasi-mono-thread,
i.e. un thread se charge de 99 % des calculs), on ne peut pas faire
grand-chose pour le forcer à utiliser plusieurs processeurs.

(je pense qu'on n'est sûr de rien)


Je confirme. Toutefois, un OS peut avoir une option pour répartir
manuellement la charge. Mais il est fort possible que laisser l'OS
gérer tout ça tout seul soit la solution la plus efficace.

Avatar
Ploc
R12y wrote:
Bonjour,

Sur la MLde qemu j'ai vu passer un fil de discussion qui disait en gros
que une instance de qemu ne savait pas encore se "répartir" sur plusieurs
processeurs. Mais quand j'y pense c'est peut-être à l'OS de
répartir cela... non? Quel est le rôle d'un OS si ce n'est pas de gérer le
temps (et les ressources, donc la répartition entre les processeurs
présents) qu'on doit attribuer à chaque process?
Mais bon, soit, un qemu ne va que sur un processeur.
Maintenant, supposons que je lance un deuxième qemu, et que j'ai un AMDx2.
Est-ce qu'on est certain que les deux qemu vont aller sur les deux
processeurs, un sur chacun? (je pense qu'on n'est sûr de rien)



Dans la liste qemu, ils parlaient pas plutot de l'emulation de systemes
multi-proc qui fonctionne pas bien?
Sinon, si la machine physique a plusieurs proc, c'est a elle de gerer
sur quel proc telle appli va aller. Et la, certains OS permettent de
dedier un processeur a une appli, mais sous linux, je suis pas sur. Il
n'y a pas tres longtemps, il savait pas faire.
Apres, si tu lances 2 instances d'une appli, il y'a des chances, surtout
si elles sont gourmandes en cpu (comme qemu), qu'elles soient bien
dispatchees, mais on peut pas vraiment le garantir.

Avatar
R12y
On Sat, 20 May 2006 11:03:45 +0200, Ploc wrote:

Dans la liste qemu, ils parlaient pas plutot de l'emulation de systemes
multi-proc qui fonctionne pas bien?


Dans le fil de discussion original, si.
Mais j'avais étendu la discussion dans le sens de ma question.
Malheureusement le sujet n'a pas été plus loin.
Je poserai volontiers la question dans un nouveau message, mais d'une
manière générale sous Linux je me renseigne sur comment c'est fait.
Mon but est en fait de calculer théoriquement et très à la louche
l'interet de l'achat d'un AMD64x2 par rapport à un AMD64 tout court, dans
cette période ou le x2 est (beaucoup?) plus cher que le simple.
Il va évidemment arriver un moment ou le simple coeur sera tellement rare
que son prix dépassera celui du x2, ce qui fait que ma question a un
interet ephémère, mais je me la pose quand même...
La machine qui accueillerai le processeur sera dédiée à hoster plusieurs
instances de qemu.
--
Debian/apt Repo: http://locataire-serveur.info/sections/liens/debian-repository
Fedora/yum Repo: http://locataire-serveur.info/sections/liens/fedora-core-yum

Avatar
Jérémy JUST
Le Sat, 20 May 2006 11:39:12 +0200,

l'interet de l'achat d'un AMD64x2 par rapport à un AMD64 tout court,
dans cette période ou le x2 est (beaucoup?) plus cher que le simple.


De façon générale, pour les calculs, les CPU ne sont pas un facteur
limitant dur (dans le sens où, une fois que tous les CPU sont chargés
à fond, ben c'est pas grave, le reste attendra). Ce n'est donc pas en
terme de nombre de CPU qu'il faut raisonner d'abord.

Non, ce qui représente une limite dure, c'est la quantité de RAM,
parce qu'une fois qu'elle est remplie, on se retrouve dans un mode de
fonctionnement anormal:
- on swappe plus que de raison, ce qui ralentit facilement d'un
facteur 1000,
- à l'extrême, les applications deviennent instables, les processus «
de ménage » normaux ne peuvent plus se lancer, ce qui met la stabilité
du système en danger,
- dans le pire des cas, la machine crashe direct.

Le fait d'avoir plusieurs CPU dans une machine permet de mutualiser
la RAM entre les CPU et de lisser les besoins. Disons que tu prévois
4 Go de RAM par CPU (c'est raisonnable pour un serveur de calcul
actuel). En moyenne, disons aussi que tu utilises 2 Go/CPU. Dans ces
conditions, 4 single-CPU suffiraient. Mais avec ton quadri-pro, tu
pourras ponctuellement faire tourner un processus qui aura besoin de
8-10 Go sans aucun problème.
Bref, un système SMP encaisse des pics de besoins en RAM plus
importants.



--
Jérémy JUST