dksledge
Goto Top

VMWare und die Performance bei virtualisierten Terminalservern

Hallo zusammen.

Im Januar wurde die Kanzlei, in der ich angestellt bin, auf Terminalserver umgestellt. Bis dahin hatten wir einen TS im Einsatz, um gelegentlich einigen Mitarbeitern ein HomeOffice ermöglichen zu können. Nun wurden alle Arbeitsplätze (rund 50) auf TS umgestellt. Leider bekommt unsere externe IT das nicht wirklich performant hin und darum wollte ich mal hier hineinfragen, ob mir vielleicht noch jemand einen klugen Hinweis geben kann, woran es noch liegen kann....

Wir haben 3 ESX-Server ProLiant DL360 Gen9 mit Intel(R) Xeon(R) CPU E5-2687W v4 @ 3.00GHz Prozessoren (jeweils 48 logische Prozessoren). Als Storage-System kommt eine 3Par zum Einsatz. Die VMWare ist auf dem aktuellen Stand.
Auf den ESX laufen folgende virtualisierten Server:
ESX1: DMS-Datenbankserver, DMS-Zusatzappliklationsserver, Exchange-Server, RDS-00 (Verwaltung), VM-Management und ein Terminalserver
ESX2: ein kleines Mandanten-ERP, einige Linux-Server und 4 Terminalserver
ESX3: ein paar Linux-Server, der Datenbankserver der Kanzleisoftware, die Domänencontroller, ein Fileserver und weitere 2 Terminalserver

Insgesamt haben wir für 45 Anwender 5 TS zur Nutzung zur Verfügung gestellt. Ursprünglich waren mal 3 angedacht... Nachdem die User dann aber fast gar nicht mehr arbeiten konnten wurden drei weitere eingerichtet (und einer wieder vom Netz genommen). Die externen ITler haben nach ihren Aussagen bereits einiges auch an der VM angepasst. Tatsächlich sieht es für mich so aus, als sei nach den letzten Anpassungen zumindest die Last (die ich in der VMWare sehen kann) auf rund 20% CPU-Leistung gesunken, wenn alle Anwender arbeiten. Tatsächlich ist es aber immer noch sehr sehr langsam und unperformant. Insbesondere stelle ich dies bei unserer Kanzleisoftware fest: Kleinere Programme, die bei einer lokalen Installation innerhalb von 3 Sekunden geladen waren benötigen nun 10-15 Sekunden zum Start. Das alles summiert sich natürlich auf..... Ich kann mit meinen Semi-Kenntnissen leider nicht ohne weiteres auf Anhieb sehen, woran es hapert. Die Netzwerkauslastung sieht gut aus, auch der Datentransfer und der I/O-Transfer bewegen sich in einem scheinbar "normalen" Rahmen.
Nachdem ich nun tagelang recherchiert habe, um überhaupt "irgendwas" zu finden stehe ich vor der Problematik, die CPU-Zuweisung zu verstehen...

Ich verstehe es so, dass in der VMWare den Maschinen virtuelle CPUs zugewiesen werden. Und das man dabei "Fehler" machen kann. Insbesondere habe ich es so verstanden, dass eine "Überzuweisung" der Performance schaden kann.
Wenn ich das so richtig verstanden habe, dann kann ich die 46 logischen Prozessoren also den auf den ESX-Systemen vorhandenen virtuellen Maschinen zuweisen. Werfe ich nun in der vSphere einen Blick auf die TS, dann sehe ich dort 32 CPUs zugewiesen. Das wäre dann doch viel zu viel? Wo ist mein Denkfehler? Wen kann ich fragen?

Ich selbst bin zwar kaufmännisch ausgebildet, habe mich aber bereits seit über 20 Jahren auch immer an den Schnittstellen zur IT befunden und früher auch selbst administriert (mit Novell Netware war das alles noch anders...). Mittlerweile fehlt mir aber bei solchen Details echt die Zeit und die Kraft, mich da im Detail einzuarbeiten. Und ich weiß langsam nicht mehr, ob ich zu blöd bin, meine Erwartungen zu hoch sind oder der externe Dienstleister es einfach nicht auf die Pfanne bekommt...

Wie tief muss ich mich selbst noch einarbeiten? Gibt es eventuell bei VMWare selbst einen Support, den man beauftragen kann, da mal draufzuschauen? Was würdet ihr empfehlen? Ich bin echt für jeden Tipp dankbar! Meine Leute kriechen langsam auf dem Zahnfleisch - die Umstellung dauert nun schon bereits seit März und es ist ein stetes Auf und Ab mit der Geschwindigkeit...

Viele Grüße
Michael

Content-Key: 458524

Url: https://administrator.de/contentid/458524

Printed on: April 24, 2024 at 18:04 o'clock

Member: Dani
Dani Jun 03, 2019 updated at 22:41:34 (UTC)
Goto Top
Guten Abend Michael,
Wir haben 3 ESX-Server ProLiant DL360 Gen9 mit Intel(R) Xeon(R) CPU E5-2687W v4 @ 3.00GHz Prozessoren (jeweils 48 logische Prozessoren).
Bitte die genaue Anahl von Prozessoren und Cores pro Server. Bitte Hyper-Threading nicht mitzählen.

Als Storage-System kommt eine 3Par zum Einsatz.
In welche Art von Festplatten sind dort verbaut, wie viel und in welchem RAID. Nicht das es dort zu einem I/O Wait kommt.
Die VMWare ist auf dem aktuellen Stand.

Die VMWare ist auf dem aktuellen Stand
Zur Sicherheit bitte Version und Build von vCenter Server und ESXi Server posten. face-wink

Die Netzwerkauslastung sieht gut aus, auch der Datentransfer und der I/O-Transfer bewegen sich in einem scheinbar "normalen" Rahmen.
Redest du vom Netzwerk zwischen Clients und virtuellen Server (sprich normaler Datenverkehr) oder/und das dedizierte Netzwerk zwischen Servern und Storage? Was kommt jeweils über eine Datenübertragungsgeschwindigkeit (1GBit, 10GBit, 40Gbit), Typ (FC, Kupfer, LWL) und Protokoll zum Einsatz.

Wenn ich das so richtig verstanden habe, dann kann ich die 46 logischen Prozessoren also den auf den ESX-Systemen vorhandenen virtuellen Maschinen zuweisen. Werfe ich nun in der vSphere einen Blick auf die TS, dann sehe ich dort 32 CPUs zugewiesen. Das wäre dann doch viel zu viel?
Da komme ich nicht mit... wie kommst du auf 46 logische Cores? Es müssten eigentlich 48 sein. Unabhängig davon sollte man nie die maximale Anzahl von Prozessoren bzw. Cores je Host vollständig vergeben. Schießlich braucht der Host selbst auch etwas Leistung und durch DRS (falls aktiviert und entsprechend eingestellt) kann es auch temporär zu Überbuchungen kommen. Mal davon abgesehen, dass durch HA(falls aktiviert) entsprechende Reseveren von Prozessoren und RAM notwendig ist.

Wie tief muss ich mich selbst noch einarbeiten?
Nimm eine Windows Clientbetriebssystem her und installiere dort RVTools. Mit diesem Tool kannst du die Konfigurations der VMs und Hosts auslesen. Somit siehst du ganz schnell wie was wo an Prozessoren/Cores konfiguiert ist und ob es eine "Überbuchung" ist.

Gibt es eventuell bei VMWare selbst einen Support, den man beauftragen kann, da mal draufzuschauen?
Grundsätzlich kannst du bei VMWare ein entsprechendes Support Ticket eröffnen. Voraussetzung dafür ist, dass ihr über aktive Subscription für alle Lizenzen verfügt. Zudem muss diese als Direct Support verbucht sein. Meist verkaufen die IT-Systemhäuser den VMWare Support über den jeweiligen Hersteller der Server. D.h. du musst dich an HP(E) wenden. Wie es bei euch ist, kann dir nur VMWare bzw. das IT-Systemhaus sagen.

Es geht schon bei grundlegenenden Dinge wie Energieeinstellungen im BIOS los, Verwendung der richtigen VMWare Images für HPE Server. Gerne wird auch mal die Kompatibilität der Software/Firmware zwischen Server ESXi, vCenter Server und 3PAR vergessen bzw. igoniert und muter gepatcht bis nichts mehr geht. Viren/Malwarescanner in den virtuellen Maschinen werden oft einfach gar nicht an die Gegebenheiten angepasst (Ausnahmen für Domain Controller, SQL-Server, Terminal Server - Deaktivierung der Network Inspection, etc...) Was ich damit sagen will, es gibt inzwischen so viele Punkte zu berücksichtigen, dass schnell etwas übersehen ist.

Meine Leute kriechen langsam auf dem Zahnfleisch - die Umstellung dauert nun schon bereits seit März und es ist ein stetes Auf und Ab mit der Geschwindigkeit...
Ich bin ja von Haus aus neugierig. An Hand welcher Kriterien habt ihr dem ausführenden IT-Systemhaus den Zuschlag erkannt?

Noch etwas Lesestoff für die Nacht.. die ist schließlich noch Jung. face-wink
https://blogs.vmware.com/performance/2017/03/virtual-machine-vcpu-and-vn ...
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpa ...
https://www.kreyman.de/index.php/citrix/sonstige-citrix-komponenten/39-c ...
https://support.hpe.com/hpsc/doc/public/display?sp4ts.oid=7271227&do ...


Gruß,
Dani
Member: Th0mKa
Th0mKa Jun 03, 2019 updated at 23:25:14 (UTC)
Goto Top
Zitat von @DKSledge:

ESX1: DMS-Datenbankserver, DMS-Zusatzappliklationsserver, Exchange-Server, RDS-00 (Verwaltung), VM-Management und ein Terminalserver
ESX2: ein kleines Mandanten-ERP, einige Linux-Server und 4 Terminalserver
ESX3: ein paar Linux-Server, der Datenbankserver der Kanzleisoftware, die Domänencontroller, ein Fileserver und weitere 2 Terminalserver

Moin,

Testweise würde ich einen ESX freiziehen und dort genau einen TS drauf laufen lassen, so als Schnellschuß. Ansonsten fehlen Angaben um das beurteilen zu können, z. B. RAM Ausstattung der ESX, Storageconfig oder die Config der VM Hardware. Um welche Kanzleisoftware handelt es sich denn?

/Thomas
Member: Vision2015
Vision2015 Jun 04, 2019 at 04:57:30 (UTC)
Goto Top
moin...


Zitat von @Th0mKa:

Zitat von @DKSledge:

ESX1: DMS-Datenbankserver, DMS-Zusatzappliklationsserver, Exchange-Server, RDS-00 (Verwaltung), VM-Management und ein Terminalserver
ESX2: ein kleines Mandanten-ERP, einige Linux-Server und 4 Terminalserver
ESX3: ein paar Linux-Server, der Datenbankserver der Kanzleisoftware, die Domänencontroller, ein Fileserver und weitere 2 Terminalserver

Moin,

Testweise würde ich einen ESX freiziehen und dort genau einen TS drauf laufen lassen, so als Schnellschuß. Ansonsten fehlen Angaben um das beurteilen zu können, z. B. RAM Ausstattung der ESX, Storageconfig oder die Config der VM Hardware. Um welche Kanzleisoftware handelt es sich denn?

/Thomas
zusätzlich würden wir gerne wissen, welches Server OS genau läuft..
wie hoch ist die last auf den einzelnen ESX Host? was sagt das vCenter? esxtop?
Dani hat auch schon die wichtigsten punkte beschrieben, allerdings denke ich, die gesamt last ist zu hoch! um was genaues zu sagen, muss man sich das ansehen! ich würde an eurer stelle einen externen dienstleister zurate ziehen...

frank
Member: bloodstix
bloodstix Jun 04, 2019 at 07:12:02 (UTC)
Goto Top
Hi,

lass mich raten: Die Kanzleisoftware ist RA-Micro?
Eine 3Par für so viele Server? Falls es wirklich RA-Micro ist: Das ding ist ein I/O-Molloch.
Und 32 vCPU für ein TS? What the? ... Pauschal würde ich sagen, dass das viel zu viel ist.
Wieviel haben denn die anderen zugewiesen?


Grüße
bloody
Member: ukulele-7
ukulele-7 Jun 04, 2019 updated at 07:20:57 (UTC)
Goto Top
Also wir haben bis zu 35 User zeitgleich auf 2 Terminal Servern, jeder nutzt 8 Kerne und nicht mehr. Zugegeben, es ist derzeit sehr knapp kalkuliert und wir warten auf neue Server. Aber grundsätzlich tippe ich bei dir auf ein extremes CPU overprovisioning, wie du schon ansatzweise erkannt hast.

Grob und vereinfacht erklärt:
Die VMs bekommen vom Host CPU Zeit. Damit eine VM auf einem Host CPU Zeit nutzen kann muss für alle der VM zugewiesenen Kerne auch ein tatsächlicher Kern frei sein und das gleichzeitig. Haben alle VMs viele Kerne dann kann immer nur eine VM gleichzeitig CPU Zeit nutzen. Das führt zu Wartezeiten, auch wenn die VM mit dem Kern eigentlich gar nichts tut. Wenn von 32 Kernen einer was berechnen will dann muss der CPU schedular 32 Kerne reservieren und der VM bereit stellen. Gibt es nur 48 können nie 2 VMs mit je 32 Kernen gleichzeitig rechnen und das macht sich massiv bemerkbar.

Leider finde ich zwei sehr gute Artikel zum Problem nicht mehr aber es gibt jede Menge dazu im Netz zu lesen. Als Tool ist esxtop dein Freund, verstehe die Werte und die Funktionsweise dahinter dann wirst du eine deutlich bessere Performance bekommen. Es kann helfen in einem ersten Schritt die vCPU extrem zu reduzieren, am besten maximal auf die Anzahl der Kerne einer einzelnen, physischen CPU (besser die Hälfte). Hier gibt es noch Faktoren wie NUMA (Anbindung von Systemressourcen wie Arbeitsspeicher an CPUs) zu beachten, die fallen aber weniger stark ins Gewicht bei deinem aktuellen Verhalten.

Es drängt sich auch die Frage auf wie viel deine externen ITler von dem Problem verstehen. Haben die wirklich 4 VMs mit je 32 Kernen auf den selben Host gelegt? Dann haben sie offensichtlich nie darüber nachgedacht.
Member: emeriks
emeriks Jun 04, 2019 at 07:49:30 (UTC)
Goto Top
Member: Dani
Dani Jun 04, 2019 updated at 10:17:41 (UTC)
Goto Top
@Th0mKa
Testweise würde ich einen ESX freiziehen und dort genau einen TS drauf laufen lassen, so als Schnellschuß
Falls HA und DRS aktiviert ist, bitte vorab deaktivieren. Sonst hast du eine schöne ABM... face-smile

@Vision2015
Dani hat auch schon die wichtigsten punkte beschrieben, allerdings denke ich, die gesamt last ist zu hoch!
Ich kann mir gut vorstellen, dass es in der ursprünglichen Planung ausreichend war, da nicht so viel RDS-Hosts vorgesehen waren.

ich würde an eurer stelle einen externen dienstleister zurate ziehen...
Da würde ich aufpassen. Schließlich ist das Projekt/Umsetzung (hoffentlich) noch nicht abgeschlossen und abgenommen. Sprich wurstelt da nun ein weitere IT-Dienstleister noch rum, kann der Schuss völlig nach hinten los gehen. Da hinterher im Worst Case keiner die Verantwortung für weitere Probleme übernimmt.


Gruß,
Dani
Member: Th0mKa
Th0mKa Jun 04, 2019 at 13:04:58 (UTC)
Goto Top
Zitat von @DKSledge:

Wenn ich das so richtig verstanden habe, dann kann ich die 46 logischen Prozessoren also den auf den ESX-Systemen vorhandenen virtuellen Maschinen zuweisen. Werfe ich nun in der vSphere einen Blick auf die TS, dann sehe ich dort 32 CPUs zugewiesen. Das wäre dann doch viel zu viel? Wo ist mein Denkfehler? Wen kann ich fragen?

Jetzt erst gelesen, das halte ich auch für viel zu viel. Ich würde eher auf 4-8 gehen, ESXTOP sollte hier mehr Klarheit verschaffen. Bei CPUs gilt so viele wie nötig, so wenige wie möglich - insbesondere wenn man ältere Single Thread Software nutzt.

/Thomas
Member: Th0mKa
Th0mKa Jun 04, 2019 at 13:06:46 (UTC)
Goto Top
Zitat von @Dani:

@Th0mKa
Testweise würde ich einen ESX freiziehen und dort genau einen TS drauf laufen lassen, so als Schnellschuß
Falls HA und DRS aktiviert ist, bitte vorab deaktivieren. Sonst hast du eine schöne ABM... face-smile

Den Zusammenhang mit HA sehe ich jetzt zwar nicht, aber ein auf Automatik stehendes DRS wäre natürlich kontraproduktiv.

/Thomas