blog.atwork.at

news and know-how about microsoft, technology, cloud and more.

SQL Server 2008 in Hyper-V: Best Practices and Performance Recommendation

Spricht etwas dagegen, SQL Server 2008 zu virtualisieren? Nein! Bei hohen Workloads empfiehlt es sich aber, diese Best-Practise und Performance-Empfehlungen zu lesen:

Running SQL Server 2008 in a Hyper-V Environment - Best Practices and Performance Recommendation

Was steht drin?  Das Dokument bietet Empfehlungen und vergleicht eine "echte" (native) Konfiguration mit einer virtualisierten Konfiguration - mit derselben Hardware, somit ein brauchbarer Vergleich aus der Praxis.
"Through a series of test scenarios that are representative of SQL Server application fundamentals, this document provides best practice recommendations on running SQL Server in Windows Hyper-V environment..."

Die Hyper-V Voraussetzungen erscheinen logisch:

  • Emulierte Gerätetreiber und "legacy" Treiber vermeiden: "Avoid emulated devices for SQL Server deployments when possible. These devices can result in significantly more CPU overhead when compared to synthetic devices."
  • In dem Dokument wurden pass-through und fixed-size VHD storage Konfigurationen verwendet und zwar immer mit SCSI Controller für die virtuellen Disks.
  • Natürlich Verwendung der Integration Components.
  • Zur Performance-Messung und Vergleich werden die altbekannten Tools SQLIO (erzeugt IO workload) und OLTP workloads(Online Transaction Processing) verwendet.

Hier ein paar herausgegriffene Ergebnisse, die mir wichtig erscheinen:

  • Generell ist die I/O-Performance in einer virtuellen Maschine etwas langsamer als in einer echten Maschine "I/O may take slightly longer to complete from the perspective of the virtual machine (Avg. Disk/sec Read and Write)" - klar.
  • Pass-through disks liefern mit hohem Workload etwas bessere Ergebnisse, sonst nicht. "In a low-stress case, there is no difference between pass-through and fixed VHD. As the workload increases, a pass-through disk starts to show a slight performance advantage."
    sql2008vm_fig6
  • Disk-Latenz-Zeiten: VHD hat die größte Latenz; zw. native und pass-through disk gibt es keinen Unterschied "...however, we noticed no difference between these and the values reported by the root partition."
  • Schon interessanter: Wie schnell werden Abfragen ausgeführt? Die Queries waren in der VM minimal langsamer. "The difference between running the queries in guest virtual machines and running them natively or on the root partition was minimal; we observed a relatively small performance overhead increase with the guest virtual machines."
    sql2008vm_fig8
  • Bei Backup und Restore führt die native Maschine durch die bessere I/O. "The slightly higher restore throughput can be explained by the write performance of the target file share (read performance of that share is slightly better because RAID5 is used)." - Gut das ist wahrscheinlich selten ein Thema.
  • Spannender: Index Rebuild (a very common database operation): Leichter Vorteil der nativen Maschine. "Very little overhead was observed when the same operation was run within the virtual machines."
    sql2008vm_fig12
  • Die Ergebnisse bei DBCC CHECKDB sind ähnlich wie bei Index Rebuild.
  • Im Dokument werden noch eine Reihe weiterer Vergleiche durchgeführt... bei Interesse empfiehlt sich dieses durchzuarbeiten und ev. mit eigenen Umgebungen und Konfigurationen zu vergleichen.

Fazit:

Die Conclusio lautet wie erwartet: Virtualisierung bringt eine Reihe von Vorteilen - die erreichte Performance hängt ganz vom Szenario ab.

"Virtualization introduces many benefits for consolidation scenarios. One of the top benefits is that virtual machines provide multiple isolated environments on the same host computer. Performance-wise, your mileage will vary depend the application, workload, and hardware."

Was ich aus den Vergleichen herauslese: Native Maschinen bringen einen Hauch mehr Leistung, welcher im Regelfall wahrscheinlich komplett vernachlässigbar ist - einen Unterschied wird wohl nur sehr hoher, kontinuierlicher Workload ausmachen. Dann werden in vielen Fällen aber soundso weitere Datenbank-Maschinen angeschafft und Lasten verteilt.

Also für mich überwiegen die Vorteile der Virtualisierung - mit aktueller Hardware und Technologie ist es mittlerweile kein Problem mehr auch hohen Workload mit virtuellen Systemen abzuarbeiten. Wie Systemlösungen tatsächlich implementiert werden hängt natürlich von vielen Faktoren ab - der Trend geht aber eindeutig zur Virtualisierung.

Loading