18
0
Fork 0

Ajouter section sur CPU pinning

This commit is contained in:
abenmiloud 2020-12-09 16:53:02 +01:00
parent 4a8d8bd38f
commit 4ca7cd8c3f
1 changed files with 48 additions and 0 deletions

View File

@ -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 dattacher un processus à un CPU particulier. La machine virtuelle ne pourra alors utiliser que les CPU que lhyperviseur lui a associés. Ça permet par exemple de limiter le problème dinvalidation du cache CPU.
Pour choisir les CPU, on peut sappuyer 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 nempêchera pas des processus de lhô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).