Forum: PC Hard- und Software virtualisierter Server: Wie feststellen wieviel CPU ankommt


von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Hallo allerseits,

folgendes Problem: Ich haben beim Kunden Server-Software laufen, die 
schlechte Performance liefert, Faktor 2-3 zu langsam. Der (Windows 
2008-)Server dort ist mit VMware virtualisiert.

Selbe Konstellation läuft bei mir auf einem (gut ausgestatteten) 
Notebook ebenfalls virtualisiert (VMware Workstation) zufriedenstellen.

Verdacht: Server hat zwar 2 GHz Xeons, aber ich kriegen nur einen 
Bruchteil davon ab, den Rest verteilt die Virtualisierung auf andere 
VMs. Habe ich mit einem simpelsten Perl-Skript nachgewiesen, welches in 
einer schleife total dumme Berechnungen ausführt, sozusagen ein "poor 
mans benchmark", ebenfalls bei mir ca. 3 mal schneller als beim Kunden. 
Server langweilt sich aber.

nun möchte ich das auf etwas belastbarere Beine stellen.

Kann mir jemand ein einfaches aber aussagekräftiges kleines Tool 
empfehlen, mit dem ich die tatsächliche CPU-Leistung messen kann (single 
threaded!), welches ich dann der IT-Abteilung des Kunden vor die Nase 
halten kann?


Danke!

von c.m. (Gast)


Lesenswert?

I/O-Lastig? notebook mit SSD, und server mit spindeln?

von (prx) A. K. (prx)


Lesenswert?

Michael Reinelt schrieb:
> 2008-)Server dort ist mit VMware virtualisiert.

Was für ein VMware? Bei ESXi gibts recht ordentliche Statistiken 
direkt im VMware selbst. Notfalls ESXi testweise auf freiem Standard-PC 
installieren - VMware auf SATA ist nicht der Renner, aber der CPU ist es 
egal.

> Verdacht: Server hat zwar 2 GHz Xeons

Das Xeon kann auch ein Pentium 4 sein, das heisst nichts.

> Kann mir jemand ein einfaches aber aussagekräftiges kleines Tool
> empfehlen, mit dem ich die tatsächliche CPU-Leistung messen kann

Der Windows eigene "perfmon" beispielsweise, wenn du Kurven brauchst. 
Oder suchst du ein Benchmark-Programm?

: Bearbeitet durch User
von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

c.m. schrieb:
> I/O-Lastig? notebook mit SSD, und server mit spindeln?

Nö, Bottleneck ist wirklich nur die CPU

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

A. K. schrieb:
> Michael Reinelt schrieb:
>> 2008-)Server dort ist mit VMware virtualisiert.
>
> Was für ein VMware? Bei ESXi gibts recht ordentliche Statistiken
> direkt im VMware selbst. Notfalls ESXi testweise auf freiem Standard-PC
> installieren - VMware auf SATA ist nicht der Renner, aber der CPU ist es
> egal.

Weiss ich leider nicht so genau, und die IT ist nicht sonderlich 
kooperativ (externe IT, Kunde sucht Schuldigen, ich glaube den zu 
kennen, brauche aber belastbare Daten)

>> Verdacht: Server hat zwar 2 GHz Xeons
> Das Xeon kann auch ein Pentium 4 sein, das heisst nichts.

Normalerweise wird der CPU-Typ doch recht verläßlich in die VM 
durchgereicht?

>> Kann mir jemand ein einfaches aber aussagekräftiges kleines Tool
>> empfehlen, mit dem ich die tatsächliche CPU-Leistung messen kann
>
> Der Windows eigene "perfmon" beispielsweise, wenn du Kurven brauchst.
> Oder suchst du ein Benchmark-Programm?

Eher Benchmark. Bottleneck kenn ich ja.

von (prx) A. K. (prx)


Lesenswert?

Michael Reinelt schrieb:
> Eher Benchmark. Bottleneck kenn ich ja.

Hab nur noch nicht verstanden, was du eigentlich willst. Zeigen, dass 
dein Rechner 3x schneller ist als deren Rechner?

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

A. K. schrieb:
> Michael Reinelt schrieb:
>> Eher Benchmark. Bottleneck kenn ich ja.
>
> Hab nur noch nicht verstanden, was du eigentlich willst. Zeigen, dass
> dein Rechner 3x schneller ist als deren Rechner?

Umgekehrt: Dass deren Rechner nicht meinen Vorgaben entspricht (ich 
forderte 4 Kerne zu 2 GHz, ich habe 4 kerne, Windows zeigt 2 GHz, aber 
ich befürchte ich krieg von VM-Host nur ~500 MHz)

von (prx) A. K. (prx)


Lesenswert?

Michael Reinelt schrieb:
> Umgekehrt: Dass deren Rechner nicht meinen Vorgaben entspricht (ich
> forderte 4 Kerne zu 2 GHz, ich habe 4 kerne, Windows zeigt 2 GHz, aber
> ich befürchte ich krieg von VM-Host nur ~500 MHz)

Und du bist in der Lage, auf deren VM diesen Benchmark laufen zu lassen? 
Ein CPU Benchmark Programm im Internet aufzutreiben ist ja wohl nicht so 
arg schwer.

Dass ein VM-Host, der nicht nur eine VM trägt, mitunter keine 100% 
deiner VM zu Verfügung stellt ist klar. Man kann im ESXi auch 
Leistungsreservierung definieren, d.h. was mindestens zur Verfügung 
stehen sollte. Nicht bekannt wäre mir aber eine vorsätzliche Bremse, die 
auch bei freier CPU drosselt.

: Bearbeitet durch User
von (prx) A. K. (prx)


Lesenswert?

Michael Reinelt schrieb:
> Umgekehrt: Dass deren Rechner nicht meinen Vorgaben entspricht (ich
> forderte 4 Kerne zu 2 GHz, ich habe 4 kerne, Windows zeigt 2 GHz, aber
> ich befürchte ich krieg von VM-Host nur ~500 MHz)

Ein 10 Jahre alter Pentium 4 Xeon kann auch 2GHz haben, wird aber im 
Vergleich mit einem aktuellen Haswell-EP 3GHz Xeon nicht einmal dein 
Drittel an Leistung erreichen.

Frequenz gefordert, Frequenz gekriegt. ;-)

: Bearbeitet durch User
von oszi40 (Gast)


Lesenswert?

640k RAM reichen wohl doch nicht für MS? Wenn etwas langsam ist, würde 
ich erst mal nach dem verfügbaren und dem benutzten RAM fragen. Evtl. 
reicht der RAM nicht und es wird recht bald auf die langsame Platte 
ausgelagert?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Angehängte Dateien:

Lesenswert?

Kann es sein, dass die VM in einer vollvirutalisierten Umgebung läuft 
und nicht in einer paravirtualisierten? Das kann ganz beträchtliche 
Leistungsunterschiede verursachen, allerdings meistens eher im 
I/O-Bereich.

Erkennen kann man dies z.B. an den durch die VM verwendeten Festplatten- 
und Netzwerktreibern.

Die Vollvirtualisierung wird z.B. dann verwendet, wenn der 
Betriebssystemtyp zum Zeitpunkt der Installation der VM unbekannt war 
oder falsch ausgewählt wurde. Und wenn der zuständige Mitarbeiter der 
IT-Abteilung unmotiviert war, hat er nach Abschluss der Installation 
auch nicht den Virtualisierungstyp überprüft.

Im Anhang befindet sich ein Screenshot des Gerätemanagers eines mittels 
Xen virtualisierten Windows Server 2008 R2. Das "PV" für Netzwerk- und 
SCSI-Controller kennzeichnet den paravirtualisierten Betrieb.

von (prx) A. K. (prx)


Lesenswert?

Andreas Schweigstill schrieb:
> Kann es sein, dass die VM in einer vollvirutalisierten Umgebung läuft
> und nicht in einer paravirtualisierten?

Hier steht ja VMware, und das ist allenfalls in Form von 1-2 
I/O-Treibern paravirtualisiert. Es verwendet jedoch per Default keine 
Paravirtualisierung. Ausserdem betrifft dieser Unterschied nicht die 
CPU, und um die geht es hier erklärtermassen.

> Das kann ganz beträchtliche
> Leistungsunterschiede verursachen,

Ist mir in der hier angedachten Dimension noch nicht begegnet. Aber ja, 
ich halte das auch bei der CPU für prinzipiell möglich, wenn der 
relevante Code gegen bestimmte Mechanismen der Virtualisierung quasi 
systematisch ankämpft. Nur wäre das bei seiner VMware Workstation nicht 
viel anders als bei dem VMware des Kunden.

: Bearbeitet durch User
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Welche Anzahl an Prozessoren und Prozessorkernen ist denn in den 
Einstellungen der VM zugewiesen worden? Standardmäßig steht dieser Wert 
bei VMware ja auch 1/1.

Kann Deine Anwendung denn überhaupt mehr als einen Prozessorkern 
ausnutzen?

Und wie schon von jemand anderem erwähnt, beschreibt der Begriff Xeon 
eine Vielzahl von Prozessoren unterschiedlichster Art. Es gab sogar 
Xeons auf Basis des Pentium III, aber die gingen nicht bis 2GHz. Gerade 
zu Pentium 4-Zeiten gab es sehr hoch getaktete Prozessoren mit 
gigantischer elektrischer Leitungsaufnahme, aber kaum Rechenleistung 
dahinter.

Zwischen den ersten Xeons auf Basis der Core-2-Architektur und aktuellen 
Prozessoren liegen mittlerweile auch etliche Generationen, bei denen 
ebenfalls eine Vervielfachung der Instruktionen pro (Hertz*Sekunde) 
stattgefunden hat.

Ich hatte auch einmal einen Kunden, der sich über die geringe 
Rechenleistung seines Xeon-basierten Servers beschwerte, auf dem er 
Simulationsrechnungen durchführte. Wie sich in unserem Gespräch 
herausstellte, hatte er einen schon damals uralten Server gekauft und 
sich nur von dem Begriff Xeon blenden lassen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

A. K. schrieb:
> Und du bist in der Lage, auf deren VM diesen Benchmark laufen zu lassen?
Innerhalb "meiner" VM kann ich mich (fast) frei bewegen, nur außerhalb 
sehe ich nix, auch keine VMware-Einstellungen und Statistiken.

> Ein CPU Benchmark Programm im Internet aufzutreiben ist ja wohl nicht so
> arg schwer.
Für einen Windows-Hasser schon :-) ich suche eine Empfehlung

oszi40 schrieb:
> Wenn etwas langsam ist, würde
> ich erst mal nach dem verfügbaren und dem benutzten RAM fragen.

Ram ist nicht das Problem. CPU ist eindeutig als Bottleneck 
identifiziert.

Andreas Schweigstill schrieb:
> Welche Anzahl an Prozessoren und Prozessorkernen ist denn in den
> Einstellungen der VM zugewiesen worden? Standardmäßig steht dieser Wert
> bei VMware ja auch 1/1.

Keine Ahnung, ich seh ja "von außen" nicht drauf.

Kann mir jemand einen einfachen und trotzdem belastbaren benchmark 
empfehlen? Idealerweise einen der verbreitet und bekannt ist?

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Michael Reinelt schrieb:
> Andreas Schweigstill schrieb:
>> Welche Anzahl an Prozessoren und Prozessorkernen ist denn in den
>> Einstellungen der VM zugewiesen worden? Standardmäßig steht dieser Wert
>> bei VMware ja auch 1/1.
>
> Keine Ahnung, ich seh ja "von außen" nicht drauf.

Die Anzahl der Prozessoren bzw. Kerne wird doch auch im Geräte-Manager 
unter Prozessoren angezeigt...

> Kann mir jemand einen einfachen und trotzdem belastbaren benchmark
> empfehlen? Idealerweise einen der verbreitet und bekannt ist?

SPECint

von Peter II (Gast)


Lesenswert?

Andreas Schweigstill schrieb:
> Die Anzahl der Prozessoren bzw. Kerne wird doch auch im Geräte-Manager
> unter Prozessoren angezeigt...

da er aber nur 1 CPU messen will, spielt das doch überhaupt keine rolle

> mit dem ich die tatsächliche CPU-Leistung messen kann
> (single threaded!),

von Bernd (Gast)


Lesenswert?

mit was verwaltest du die VMs? Mach bitte ein screenshot der 
betreffenden VM bzw. schau mal nach "collecting diagnostic information 
from an ESX or ESXi host".

Im Anschluss ist der Knoten schnell gelöst. Das hier ist ja schlimmer 
als bei rate mal mit Rosenthal - würg...

von Peter II (Gast)


Lesenswert?

Bernd schrieb:
> mit was verwaltest du die VMs? Mach bitte ein screenshot der
> betreffenden VM bzw. schau mal nach "collecting diagnostic information
> from an ESX or ESXi host".

soviel dazu;
> Innerhalb "meiner" VM kann ich mich (fast) frei bewegen, nur außerhalb
> sehe ich nix, auch keine VMware-Einstellungen und Statistiken.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Noch eine Idee:
Auf dem Host laufen einige VMs, die entweder im Bootmanager festhängen 
oder beim Herunterfahren. Dort dann der Prozessor in einer Warteschleife 
und konsumiert einfach nur so viel CPU-Zeit, wie er nur bekommen kann, 
denn es gibt keine blockierenden Systemaufrufe. Solche hängenden VMs 
habe ich auch schon mehrmals erlebt.

Das kann aber natürlich auch nur der Administrator des Hosts 
feststellen.

von (prx) A. K. (prx)


Lesenswert?

Den genauen CPU Typ kann man auch innerhalb der VM identifizieren. Die 
wird durchgereicht, wenn auch nicht zwingend mit allen Features.

von Deneriel (Gast)


Lesenswert?

Die für dich interessanten Einstellungen siehst du nicht im Gast sondern 
in der ESXi/vCenter-Konsole.

Wieviele Maschinen laufen auf dem Host?
Wenn du die Cores für rechenlastige Aufgaben nutzt sollte man 
sicherstellen dass du die auch exklusiv zur Verfügung hast. Wenn man 
mehr Cores provisioniert als das System hat kommt es zwangsläufig dazu 
dass die vorhandenen Kerne zwsichen den Maschinen aufgeteilt werden 
müssen und dann hast du zwar 4 Cores aber eben nur einen Bruchteil der 
Leistung zur Verfügung. Im Normalfall wirkt sich das nicht aus da 
typische Systeme eher vor sich hin dümpeln und Engpässe beim 
Arbeitsspeicher oder im IO auftreten.

Es gibt weiterhin noch Reservierungen und Beschränkungen, sowie 
Gewichtungen für CPU und Speicheranforderungen die sich pro Maschine 
oder Ressourcengruppe festlegen lassen.
Manche Software hat mit externen Einschränkungen der Ressourcen generell 
ein Problem. Früher war das ein Drama mit Novell - aber das ist ja 
mittlerweile nahezu ausgestorben ;-) Aber wehe du hast da eine 
Beschränkung eingetragen - auch wenn sie noch so großzügig war. Die 
Kiste ist sofort in die Knie gegangen.

Man kann auf dem Host in den Maschineneinstellungen auch eine Affinität 
zu bestimmten CPU-Cores eintragen um Ressourcenfressende Maschinen zu 
bevorzugen, im Normalfall sollte das aber selten nötig sein. Da muss man 
auch in Hinblick auf vMotion etwas aufpassen.


Ich denke, dass du nicht umhin kommst mal einen Blick auf die 
VM-Umgebung zu werfen.

von VM Admin (Gast)


Lesenswert?

Leider fehlt immer noch der CPU Typ.

Schau halt mal nach im Gerätemanager.

Unter VMware können auch Ressourcen reserviert werden. Vielleicht wäre 
das eiene Option für dich.

Die Geschwindigkeit mit der dein Perl Script läuft ist fast 
ausschließlich von der CPU Frequenz abhängig nicht von der Anzahl der 
Cores.
So läuft ein Prozess welcher nicht Multicore Unterstützung hat auf einer 
CPU mit 4x 3 GHz schneller auf einer mit 8x 2 GHz.

Wir haben hier auch ESXI laufen ich kenne die Statistiken und die 
Möglichkeiten. Ich kenne auch das Problem mit den zu langsamen Server 
usw. Auch wenn die VMWare Statistik immer super aussieht rennen die 
Server darauf zu langsam.

Als Nachweis das dies so ist würde ich deinen Benchmark vom Laptop und 
der Server akzeptieren. Das ist aber dann Ermessungssache von dem Admin.

Lass dir Erstmal CPU Leistung reservieren. Biete einen Server an welcher 
genug Leistung hat.

von Bernd (Gast)


Lesenswert?

Michael Reinelt schrieb:
> A. K. schrieb:
>> Michael Reinelt schrieb:
>>> Eher Benchmark. Bottleneck kenn ich ja.
>>
>> Hab nur noch nicht verstanden, was du eigentlich willst. Zeigen, dass
>> dein Rechner 3x schneller ist als deren Rechner?
>
> Umgekehrt: Dass deren Rechner nicht meinen Vorgaben entspricht (ich
> forderte 4 Kerne zu 2 GHz, ich habe 4 kerne, Windows zeigt 2 GHz, aber
> ich befürchte ich krieg von VM-Host nur ~500 MHz)

https://www.cpubenchmark.net/
damit kannst du in deiner VM der CPU auf den Zahn fühlen. 
Vergleichswerte werden gleich mitgeliefert. Von daher kannst du 
abschätzen in welcher Leistungsklasse sich deine Gurke befindet.

http://www.iometer.org/
Mit dem iometer kannst du sehr speziell auf deine Bedürfnisse hin die 
CPU testen.

So wie ich das hier lese bist du nicht der Admin und hast überhaupt kein 
Einfluss auf die Host-Konfiguration (Berechtigungen...). Von daher sind 
alle gutgemeinten Ratschläge sinnfrei, denn du kannst eh nichts 
umsetzen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Danke, Bernd! Genau das was ich brauche!

von Bernd (Gast)


Lesenswert?

freut mich. Normalerweise sauge ich hier nur bzgl. Elektronik. Schön 
etwas beisteuern zu können ...

von Andreas D. (rackandboneman)


Lesenswert?

Das Ausführen mancher langlaufenden Benchmarks kann aber einen 
Nebeneffekt haben... nämlich dass der der den Host verwaltet deine 
vermeintlich teilabgestürzte/in einer CPU-fressenden Schleife hängende 
VM erst recht drosselt oder gar rebootet...

Und schlechte I/O-Performance kann sich sehr wohl als vermeintlicher 
CPU-Engpass darstellen wenn man nicht sehr genau hinguckt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.