marchcattle - Fotolia

F

Wofür braucht man Affinitätsregeln für vCPU-Ressourcen?

Bei der Zuweisung von vCPU-Ressourcen können Affinitätsregeln verwendet werden. Wofür benötigt man Affinität und Anti-Affinität und welche Rolle spielt Hyper-Threading dabei?

Bei der Virtualisierung werden virtuelle Maschinen von der zugrunde liegenden Hardware isoliert. Die dabei stattfindende Abstraktion von CPUs hin zu virtuellen CPUs (vCPU) und die damit zusammenhängende Zuweisung von vCPUs zu virtuellen Maschinen sollte keine negativen Effekte auf die Leistung der VMs haben. Im Idealzustand bedient jede vCPU nur eine virtuelle Maschine (virtuelle Maschinen dagegen können durchaus mehrere vCPUs nutzen) und es sollte auch egal sein, welche vCPU welcher VM zugewiesen wird. In der Realität macht es manchmal aber eben doch einen Unterschied.

Hypervisoren wie zum Beispiel VMware ESXi geben Administratoren die Möglichkeit an die Hand, Affinitätsregeln zu definieren, die einer bestimmten virtuellen Maschine eine bestimmte virtuelle CPU zuweisen. Anti-Affinitätsregeln dagegen verhindern die Nutzung einer bestimmten vCPU durch eine bestimmte VM.

Bedeutung erlangt die Affinität von vCPU-Ressourcen vor allem durch Hyper-Threading. Bei diesem Vorgang werden zwar zwei logisch getrennte CPU-Kerne zur Verfügung gestellt, die meisten Subsysteme teilen sich beide CPUs aber. Das Hyper-Threading macht also aus einer CPU nicht plötzlich zwei jeweils ebenso leistungsstarke, sondern sorgt eher dafür, dass eine CPU durch zwei Instruktions-Pipelines voll ausgelastet werden kann. Diese höhere Auslastung bringt allerdings auch mögliche Performance-Nachteile mit sich. Wenn zwei Threads der gleichen CPU zwei unterschiedlichen virtuellen Maschinen zugewiesen werden, dann kann der Rechenbedarf dieser Workloads zu einer Performance-Herabstufung einer oder sogar beider virtueller Maschinen führen.

Man stelle sich eine CPU mit Hyper-Threading vor. Damit werden zwei logische CPUs bereitgestellt, die wiederum als die vCPUs CPU 0 und CPU 1 zur Verfügung gestellt werden. Ein dritter Hyper-Threading-Kern würde die vCPUs 2 und 3, ein dritter die vCPUs 4 und 5 etc. bereitstellen.

Es ist durchaus üblich, in dieser Situation die CPUs 0 und 1 zwei unterschiedlichen virtuellen Maschinen zuzuweisen, womit zwei unterschiedliche Workloads von einem CPU-Kern abgearbeitet werden. Dies kann problemlos funktionieren – und tatsächlich ist dies oft der Fall –, wenn beide Workloads nur geringe Rechenanforderungen aufweisen. Wenn aber eine oder beide der virtuellen Maschinen einen hohen Rechenbedarf haben, kann dies die Performance einer oder beider virtueller Maschinen beeinträchtigen, weil die zugrunde liegende physische CPU die Rechenlast nicht adäquat auffangen kann.

Die Grundidee hinter der Affinität oder Anti-Affinität von vCPUs sieht die Möglichkeit vor, vCPU-Ressourcen gezielt zuteilen zu können, um diese potenziellen Performance-Probleme zu umgehen und die Leistung der virtuellen Maschinen über die physische Hardware hinweg ausbalancieren zu können. Mit Blick auf das oben genannte Beispiel könnte man eine Affinitätsregel definieren, wonach die erste virtuelle Maschine CPU 0 nutzt, also die erste Hyper-Threading-CPU des ersten physischen CPU-Kerns.

Eine weitere Affinitätsregel könnte dann festlegen, dass die zweite virtuelle Maschine statt CPU 1 lieber CPU 2 nutzt, also die erste Hyper-Threading-CPU des zweiten physischen CPU-Kerns. Genauso könnte aber auch eine Anti-Affinitätsregel erstellt werden, die der zweiten virtuellen Maschine die Nutzung von CPU 1 untersagt. Damit wäre aber nur festgelegt, dass die zweite VM nicht CPU 1 nutzt, aber nicht, welche CPU stattdessen verwendet werden soll.

Regeln zur Affinität oder Anti-Affinität sind sicherlich nicht in jedem Fall und für alle virtuellen Maschinen nötig. Die meisten typischen Workloads funktionieren problemlos mit geteilten CPU-Kernen und Hyper-Threading. Bei geschäftskritischen oder rechenintensiven Workloads sollte das Risiko von Performance-Problemen aber über Affinitätsregeln vermindert werden.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Erfahren Sie mehr über Server- und Desktop-Virtualisierung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close