Ajouter section sur CPU pinning
This commit is contained in:
parent
4a8d8bd38f
commit
4ca7cd8c3f
48
HowtoKVM.md
48
HowtoKVM.md
|
@ -80,6 +80,54 @@ Un hyperviseur KVM doit avoir des CPUs supportant la virtualisation.
|
||||||
Cela s'active en général via le *BIOS* de la machine.
|
Cela s'active en général via le *BIOS* de la machine.
|
||||||
Si ce n'est pas activé, vous aurez une erreur `KVM: disabled by BIOS`
|
Si ce n'est pas activé, vous aurez une erreur `KVM: disabled by BIOS`
|
||||||
|
|
||||||
|
#### CPU pinning
|
||||||
|
|
||||||
|
Le CPU pinning permet d’attacher un processus à un CPU particulier. La machine virtuelle ne pourra alors utiliser que les CPU que l’hyperviseur lui a associés. Ça permet par exemple de limiter le problème d’invalidation du cache CPU.
|
||||||
|
|
||||||
|
Pour choisir les CPU, on peut s’appuyer sur les informations sur la topologie du processeur avec la commande `lspcu`.
|
||||||
|
|
||||||
|
```
|
||||||
|
$ lscpu -e=cpu,core,cache
|
||||||
|
CPU CORE L1d:L1i:L2:L3
|
||||||
|
0 0 0:0:0:0
|
||||||
|
1 1 1:1:1:0
|
||||||
|
2 2 2:2:2:0
|
||||||
|
3 3 3:3:3:0
|
||||||
|
4 4 4:4:4:1
|
||||||
|
5 5 5:5:5:1
|
||||||
|
6 6 6:6:6:1
|
||||||
|
7 7 7:7:7:1
|
||||||
|
8 0 0:0:0:0
|
||||||
|
9 1 1:1:1:0
|
||||||
|
10 2 2:2:2:0
|
||||||
|
11 3 3:3:3:0
|
||||||
|
12 4 4:4:4:1
|
||||||
|
13 5 5:5:5:1
|
||||||
|
14 6 6:6:6:1
|
||||||
|
15 7 7:7:7:1
|
||||||
|
```
|
||||||
|
|
||||||
|
On voit ici que les CPU 4 et 12 (1ère colonne) sont dans le même _core_ (2ème colonne). Les CPU 4 à 7 et 12 à 15 partagent le même cache L3 (3ème colonne, dernier caractère). La configuration XML ci-dessous associe à la machine virtuelle les CPU 4 à 7 et 12 à 15.
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<domain>
|
||||||
|
[…]
|
||||||
|
<vcpu placement='static'>2</vcpu>
|
||||||
|
<cputune>
|
||||||
|
<vcpupin vcpu='0' cpuset='4'/>
|
||||||
|
<vcpupin vcpu='1' cpuset='12'/>
|
||||||
|
<vcpupin vcpu='2' cpuset='5'/>
|
||||||
|
<vcpupin vcpu='3' cpuset='13'/>
|
||||||
|
<vcpupin vcpu='4' cpuset='6'/>
|
||||||
|
<vcpupin vcpu='5' cpuset='14'/>
|
||||||
|
<vcpupin vcpu='6' cpuset='7'/>
|
||||||
|
<vcpupin vcpu='7' cpuset='15'/>
|
||||||
|
</cputune>
|
||||||
|
[…]
|
||||||
|
```
|
||||||
|
|
||||||
|
La machine virtuelle ne pourra utiliser que ces processur, mais ça n’empêchera pas des processus de l’hôte de les utiliser aussi. Pour empêcher ça, il faudra isoler les CPU.
|
||||||
|
|
||||||
### Configuration mémoire
|
### Configuration mémoire
|
||||||
|
|
||||||
On conseille d'avoir une certaine marge de RAM par rapport à la somme de la mémoire allouée à chaque VM, surtout si vous activez du cache au niveau des disques des VMs (ce qui est conseillé pour de bonnes performances).
|
On conseille d'avoir une certaine marge de RAM par rapport à la somme de la mémoire allouée à chaque VM, surtout si vous activez du cache au niveau des disques des VMs (ce qui est conseillé pour de bonnes performances).
|
||||||
|
|
Loading…
Reference in New Issue