Ein paar Worte zur tatsächlichen Leistung des Hypervisors

Benutzer virtualisierter Systeme und insbesondere Dienstanbieter fragen sich sehr oft: "Wie kann die verfügbare Hardware optimal genutzt werden?" In diesem Zusammenhang müssen wir häufig den KVM-Hypervisor und die Unterschiede zwischen verschiedenen Versionen von Virtuozzo diskutieren. In diesem Beitrag werden wir über eine Reihe von Tests des neuesten Virtualisierungssystems sprechen, zusammen mit Schätzungen der tatsächlichen Leistung unter typischen Belastungen sowie unter Berücksichtigung der Patches Meltdown und Spectre.

Was ist für ein Hosting-Unternehmen oder eine IT-Abteilung am wichtigsten, die den Support für die maximale Anzahl von Aufgaben an vorhandenen Geräten organisieren muss? Wenn ein Unternehmen nach einem serviceorientierten Modell arbeitet oder Services verkauft, zeigt die Praxis, dass die Hauptsache der Gewinnindikator pro Server ist. Welche Technologien gleichzeitig eingesetzt werden und aufgrund derer die Verteilungsdichte erreicht wird, sind die Unternehmensvertreter nicht so sehr besorgt.

Die Frage, warum wir KVM in Virtuozzo 7 als Hypervisor verwenden und wie wir uns in diesem Fall von einem einfachen OpenSource-Virtualisierungssystem unterscheiden, wird jedoch sehr oft gestellt. Und heute möchte ich eine Antwort darauf geben.

In der Vergangenheit arbeitete Virtuozzo mit einem eigenen Hypervisor, aber vor einigen Jahren haben wir festgestellt, dass die Entwicklung teurer und schwieriger ist als die Optimierung eines einigermaßen erfolgreichen und effizienten KVM. KVM ist jedoch kein Benchmark für die Leistung und muss wie jede OpenSource-Plattform mit einer Datei aktualisiert werden. Dies ist Teil unserer Entwicklungsabteilung. Wir optimieren den Code, integrieren ihn in die Datenspeicherplattform und andere Komponenten und erhöhen so die Produktivität und Dichte.

Vergleich mit anderen Hypervisoren


Einer der Tests, mit denen wir die Leistung messen, ist der DVD Store. Es verwendet eine klassische Reihe von Serversoftware: Linux, Apache, MySQL, PHP (LAMP). In jeder virtuellen Maschine emuliert der Test den Betrieb eines Online-DVD-Speichers. Das Ergebnis des Tests ist die Anzahl der insgesamt festgeschriebenen Transatale in allen virtuellen Maschinen (Ordinatenachse). Die Anzahl der am Test beteiligten virtuellen Maschinen steigt nacheinander von 1 auf 100 (Abszissenachse).

LAMPE: OpenSource QEMU KVM gegen Virtuozzo @ CentOS 7.4 (virtuelle Maschinen)

Wie Sie in den obigen Grafiken sehen können, ist die Leistung von virtuellen Maschinen mit CentOS Linux 7.4, die auf dem Virtuozzo 7-Hypervisor ausgeführt werden, bis zu 30% höher als beim Starten einer ähnlichen Last auf der Standard-KVM. Der größte Unterschied wird an dem Punkt des CPU-Überschreibens beobachtet, an dem die Gesamtzahl der Prozessorkerne, die allen virtuellen Maschinen zugewiesen sind, die Anzahl der physischen Kerne des CPU-Servers erreicht. Für diesen Server entspricht dieser Punkt 20 virtuellen Maschinen. Darüber hinaus gewährleisten der Virtuozzo 7-Kern und die adaptive Speicherverwaltungsrichtlinie einen stabilen Betrieb virtueller Maschinen nach dem RAM-Over-Commit-Punkt, an dem die allen virtuellen Maschinen zugewiesene Gesamtmenge an RAM die Größe des physischen Speichers des Servers überschreitet. Mit einer solchen Last kann die Standard-KVM die Bedingungen für den normalen Betrieb nicht schaffen.

Ein weiterer Vergleich wurde zwischen dem Virtuozzo 7-Hypervisor und Microsoft Hyper-V 3.0 durchgeführt. Hier wurde die Leistung mithilfe des vConsolidate-Tests bewertet, und Windows Server 2012 R2 wurde als Gastbetriebssystem für virtuelle Maschinen verwendet.

vConsolidate: Hyper-V gegen Virtuozzo @ Windows 2012 R2 (virtuelle Maschinen)

Bild Im Gegensatz zum DVD Store ist in vConsolidate die Last nicht für alle virtuellen Maschinen gleich. In diesem Test werden sie in sogenannte CSU (Consolidation Stack Units) unterteilt. Jede CSU ist eine Gruppe von vier virtuellen Maschinen, die SPECjbb, WebBench und SysBench (OLTP) laden. Die vierte VM in jeder CSU ist inaktiv, dh ohne Last. Das quantitative Ergebnis ist das geometrische Mittel der Ergebnisse der drei oben genannten Tests, die insgesamt von allen virtuellen Maschinen (Ordinatenachse) erhalten wurden. Die Anzahl der am Test beteiligten CSUs steigt nacheinander von 1 auf 24 (Abszisse).

Für beide Hypervisoren wurde der Test zweimal durchgeführt: mit Patches für die Schwachstellen Meltdown und Spectre sowie ohne diese. Die Annäherung der Ergebnisse zeigt, dass Virtuozzo 7 im Durchschnitt eine um 15% höhere Leistung aufweist als der "native" Microsoft-Hypervisor.

Meltdown und Spectre


Wie Sie wissen, war die gesamte IT-Community am 4. Januar 2018 von der Entdeckung großer konzeptioneller Schwachstellen in allen Intel-Prozessoren mit Ausnahme von Itanium und älteren Atom (bis 2013) begeistert. Durch die Verwendung dieser Sicherheitsanfälligkeiten kann jeder nicht privilegierte Prozess im System auf Kerneldaten (Meltdown) oder Daten eines anderen Prozesses (Spectre) zugreifen. Softwareentwickler konzentrierten sich auf die Veröffentlichung von Softwareupdates, um diese Schwachstellen zu beheben. Benutzer hatten jedoch natürlich Fragen dazu, wie sich diese Updates auf die Systemleistung auswirkten.

Am Beispiel des vConsolidate-Tests haben wir überprüft, wie sich Patches für Meltdown und Spectre auf die Leistung von Containern unter CentOS Linux 7.4 auswirken. Dann haben wir eine weitere Messung durchgeführt - mit dem Kernel einen kompilierten modifizierten Compiler mit der Option „Retpoline“ (zum Beispiel bieten GCC und Clang / LLVM eine solche Möglichkeit).

Leistung mit Retpoline: vConsolidate @ CentOS 7.4 (Container)

Wie Sie in den obigen Grafiken sehen können, verringert das Anwenden von Patches gegen Meltdown und Spectre die Containerleistung erheblich. Darüber hinaus war der „schwierigste“ Patch für Spectre-V2. Wenn Sie den Compiler jedoch mit der neuen Option Retpoline verwenden, können Sie diesen Patch auf Systemen mit Prozessoren, die älter als Skylake sind, sicher aufgeben und bis zu 25% der Leistung zurückgewinnen. Wir haben jedoch aufgrund von Patches für Meltdown und Spectre-V1 immer noch etwa 5% verloren.

Leistung mit Retpoline: vConsolidate @ CentOS 7.4 (virtuelle Maschinen)


Im Fall von CentOS Linux 7.4 ist die Situation innerhalb der virtuellen Maschinen etwas rosiger: Patches für Meltdown und Spectre beeinträchtigen die Leistung nur um 15%, und der Leistungsunterschied zwischen dem nicht gepatchten Kernel und dem mit Retpoline kompilierten Kernel beträgt nur 1-2%. Durch den Einsatz des neuen Compilers konnte der Leistungsabfall nahezu vollständig kompensiert werden. Es ist jedoch zu berücksichtigen, dass alle drei Messungen auf denselben virtuellen Maschinen durchgeführt wurden - mit nicht gepatchten Kerneln des Gastbetriebssystems. Das Aktualisieren von Gastbetriebssystemen führt zu zusätzlichen Leistungseinbußen für Benutzeranwendungen.

Leistung mit Retpoline: vConsolidate @ Windows 2012 R2 (virtuelle Maschinen)



Das neueste Diagramm für heute ist ein ähnlicher Vergleich, jedoch mit virtuellen Windows Server 2012 R2-Maschinen. Hier war die Verlangsamung der Patches nicht so groß und betrug ungefähr 10%, und die Verwendung des Kernels mit Retpoline ermöglichte es, den Unterschied gegenüber dem nicht gepatchten Kernel auf 2-3% zu reduzieren.

Fazit


Unmodifiziertes KVM hat natürlich seine Vorteile, und der Hauptvorteil ist seine kostenlose. Die durchgeführten Tests belegen jedoch, dass private Verbesserungen und Modernisierungen die Rendite der verwendeten Infrastruktur verbessern können. Das heißt, wenn Sie ein Maximum an Containern und virtuellen Maschinen platzieren müssen, stellen Sie sicher, dass diese dauerhaft gespeichert sind - alle auf derselben Plattform und mit einem Minimum an schamanistischen Tänzen -, ist die verbesserte KVM viel effektiver, insbesondere wenn die auf der Plattform ausgeführten Dienste gute Margen aufweisen und real sind das Geld. In diesem Fall zahlen sich die Kosten für Lizenzen und Support in kürzester Zeit mehr als aus.

Die Stärke von VZ7 liegt weiterhin in der Unterstützung verschiedener Arten von VMs und Containern auf derselben Plattform und mit einer höheren Leistung für jede Kategorie virtueller Objekte. Von einem Allheilmittel kann man aber auch hier nicht sprechen. Wenn beispielsweise eine Erhöhung der Dichte dem Unternehmen keine zusätzlichen Finanzmittel bringt und Ihre eigenen Mitarbeiter OpenSource-Lösungen problemlos verwalten und fertigstellen können, besteht die Logik darin, offene Tools zu verwenden, einschließlich CentOS und der ursprünglichen KVM.

Übrigens werden wir im nächsten Beitrag über die Entwicklung unseres verteilten Speichers und seine tatsächlichen Fähigkeiten für die Arbeit mit VMs und Containern sprechen.

Source: https://habr.com/ru/post/de413127/


All Articles