.: Daniel Melanchthon :.

Banging your head against a wall uses 150 Calories an hour.

Augen auf beim Hardwarekauf: I/O-Performanceverlust bei Virtualisierung von Windows XP?

Augen auf beim Hardwarekauf: I/O-Performanceverlust bei Virtualisierung von Windows XP?

  • Comments 6
  • Likes

Im letzten Monat wurde ich auf den Thread Langsames Windows XP auf Hyper-V R2 in den Microsoft TechNet-Foren aufmerksam gemacht. Ein Kunde schreibt:

…habe auf einen HP ML350 G5 mit Quad XEON Proz. und 12GB RAM das Problem, das Windows XP als VM sehr langsam läuft. Im Taskmanager der virutellen Maschine kann man beobachten, dass jede kleine Rechenaufgabe von div. Prozessen gleich eine heftige CPU Last (virtuell) auslöst. Andere virtuelle Maschinen auf diesen Hyper-V Server mit Windows7 oder Windows 2008 Server als OS laufen wie geschmiert. Ich habe im Internet etwas gefunden, dass es mit einem bestimmten Step des Prozessor zusammernhängen könnte…

imageWas ist hier das eigentliche Problem? Bei der Virtualisierung von der x86-Version von Windows XP sowie älteren Windows-Versionen wie zum Beispiel Windows Server 2000 können in bestimmten Hardwareumgebungen Leistungseinbußen beobachtet werden. Hintergrund ist ein häufiger Zugriff auf die Advanced Programmable Interrupt Controller’s (APIC) Task Priority Register (TPR) der CPU. Dieses Verhalten zeigt Windows XP (und ältere Versionen wie Windows 2000) immer dann, wenn der Interrupt Request Level (IRQL) des Prozessors verändert wird.

In einer virtualisierten Umgebung muss der Zugriff auf die TPR des APIC durch den Hypervisor gehandhabt werden, was zu Performanceverlusten bedingt durch Virtualisierung führt. Diese Verluste sind dabei unabhängig von der verwendeten Virtualisierungslösung, solange sie Hypervisor-basierend ist.

Um den Zugriff auf die TPRs des APIC zu beschleunigen, führte Intel ein Technologie mit dem Namen Intel® VT FlexPriority in neueren Prozessoren ein. Eine nähere Beschreibung dieser Technologie und der Auswirkungen findet man in Intel® Virtualization Technology Processor Virtualization Extensions and Intel® Trusted execution Technology, woraus ich auch das obige Bild entnommen habe. Windows XP Sp3 und Windows Server 2000 SP4 liessen sich dadurch in Benchmarktests auf Virtual Iron um bis zu 35% beschleunigen. Diese Technologie ist zum Beispiel in den Intel Xeon Prozessorenreihen 5200, 5400, 5500 und 7400 enthalten.

Jedoch muss man hier jetzt genau hinschauen: FlexPriority ist in dem B2-Stepping noch nicht enthalten. Eingeführt wurde es erst ab dem E-Stepping, welches jedoch nicht auf den Markt kam und ist somit ab dem G-Stepping enthalten. Kunden, die wie oben einen Server mit Xeon Prozessoren zwecks Virtualisierung von Windows XP einsetzen möchten, sollten beim Kauf darauf achten, dass die CPUs neueren Datums sind und FlexPriority unterstützen. Dazu kann man die von Intel unter processorfinder.intel.com zur Verfügung gestellte Suche nutzen, mit der man die genauen Details jeder CPU nachschlagen kann.

Wer allerdings neuere Betriebssysteme virtualisiert, braucht sich keine Sorgen machen. Windows Server 2003, Windows Vista, Windows 7 und Windows Server 2008 sowie die R2-Varianten enthalten Kerneloptimierungen, so dass bei IRQL-Änderungen auf die TPR nicht mehr zugegriffen werden muss und die Performance nicht beeinträchtigt wird.

Weitere Informationen:

Comments
  • Das war und ist für mich ein Buch mit sieben Siegeln. Sämtliche (freeware) Virtualisierungslösungen haben es geschafft MS XP in einer angemessenen Performance zu virtualisieren. Darunter zähle ich VMware, SUN, und MS Virtual PC.

    Von Hyper-V war ich dementsprechend enttäuscht. Nun erscheint es mir aber viel klarer.

    Bedeutet: MS XP auf einem ESXi mit ‚falscher‘ Hardware wird auch langsam laufen?

  • Die Tests, die die Performancesteigerungen von Windows 2000 und Windows XP belegen, wenn FlexPriority zum Einsátz kommt, wurden von Intel nicht mit Hyper-V, sondern mit Virtual Iron gemacht, welches auf Xen aufsetzt. Die Problematik der häufigen Zugriffe auf die TPR besteht meines Wissens bei allen Virtualisierungslösungen. wer Xo virtualiseren und die maximale Performance erreichen will, sollte eine CPU mit FlexPriority nehmen. Für spätere Betriebssysteme trifft das nicht zu, da diese nicht so häufig auf die TPR zugreifen.

  • Nun ja dann hab ich nun die Wahl, ob ich meine WinXP VMs für Tests mit 256-512 MB "langsam" weiter laufen lasse oder auf Win7 als VM-Gäste umsteige aber dann mit meinen 3,5 GB RAM im Notebook hadere.

    Zum Glück kam die Info noch früh genug: Ostern soll ein neuer VM-Host zuhause einziehen, dann weiss ich worauf ich zu achten habe. Danke

  • Der erwähnte Thread war von mir.

    Zufällig stoße ich nun auf deinen Eintrag.

    Ich habe vor einigen Tagen eine 5400er CPU für diesen Server bestellt.

    Wenn du aber von einer 35% Performance Steigerung berichteset, habe ich nicht große Hoffnungen das der CPU Tausch viel bringt. Derzeit kann man auf dem Ding nicht wirklich arbeiten.

    Ich bin schon gespant, was der Tausch tatsächlich bringt.

  • Habe nun die CPU wie angekündigt auf einen 5400er getauscht.

    Jetzt läuft auch Windows XP wie geschmiert.

  • Klasse! Danke für die Rückmeldung.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment