Ryzen vs. Intel CPU - Rechenzeit wird nicht genutzt

MichiLH2

Banned
Registriert
Apr. 2017
Beiträge
300
Hi,

war mir nicht ganz sicher, ob das jetzt in das AMD Forum gehört oder hier her. Ich meinte es ist eher ein Fachgespräch.

Folgender Fall. Ich habe mit Java ein Programm geschrieben, welche über RMI Aufgabenblöcke verteilt, die mit dem selben Algorithmus auf leicht unterschiedlichen Daten arbeitet. Pro Kern gibt es genau 2 Threads.

Nun wechselte ich die AMD Maschine gestern von Ubuntu Server auf Windows Server 2016. Die CPU Auslastung unter Ubuntu mit dem AMD System (Ryzen 1700) lief im Bereich von 100%. Jetzt auf Windows, habe ich lediglich eine durchnschnittliche CPU Auslastung von 73-78%

Daneben habe ich einen anderen Server der ebenfalls das selbe Windows drauf hat, mit einem 6700k, der allerdings stets im Bereich von 100% rechnet. (So wie es sein soll)

Jetzt frage ich mich natürlich schon, warum der Wechsel von Ubuntu auf Windows dies zur Folge hat? Im Prinzip fehlen mir die 100-(73) % an Leistung die nicht abgerufen werden. Das ist auf Dauer teuer.

Hat jemand eine Idee woran das liegen kann?

Windows mit i6700k

67.JPG

Ryzen

ryzen.JPG
 
Zuletzt bearbeitet:
An der Kombination Windows Server und Intel. Weil wenn man auf einem Linux-Server 100% Last zusammen bekommt liegt es nicht an der CPU, sondern an irgendwelchen "Optimierungen" bei Windows, die Linux nicht kennt
 
Sind irgendwelche "silent" oder "powersafe" Profile aktiv?
 
Habe ich schon geschaut, beide laufe auf max. power consumption und auch in den Details ist alles auf maximum. Was meinst du mit 7,8,10?
 
Zuletzt bearbeitet:
Ist die Geschwindigkeit auch wirklich langsamer oder misst Du die Performance nur anhand der CPU-Auslastungsanzeige?
 
Sicher dass dein Java-Programm genügend Threads erzeugt? vielleicht hat deine Java VM ja unter Windows irgendein Thread-Limit pro Programm eingestellt...
 
MichiLH2 schrieb:
Sorry, ist Windows Server 2016

Da wirst du vermutlich auf die Optimierungen von Microsoft bzgl. Epyc warten/hoffen müssen. :(
Die sind ja noch recht frisch und noch nicht all zu viele Server davon am Markt.

Beim Ryzen sah und sieht man an den Anwendungsbenchs schön, dass bei Microsoft noch eine Bremse existiert (im Vergleich zu Linux): https://www.computerbase.de/2017-03/amd-ryzen-1800x-1700x-1700-test/3/#abschnitt_anwendungen_Windows
Threadripper genauso:
https://www.computerbase.de/2017-08/amd-ryzen-threadripper-test-1950x-1920x/3/

Mal versucht den 2016er in einem VMware ESXi Hypervisor zu installieren auf Ryzen?
 
@updater14
Mhm, also sollte das echt an Windows liegen, wäre das eine super schwache Leistung von einem milliarden schweren Weltkonzern wie Microsoft. Wir reden hier ja schließlich über knapp 20% die ungenutzt bleiben. Das kann ich mir fast nicht vorstellen, weshalb ich das nicht in Betracht gezogen hab. Werd mal in die Richtung recherchieren.

Nein, ich würde dann eher wieder zu Ubuntu wechseln, aber das hat auch so seine Schattenseiten :-/

@Rego

Ja nutze die CPU-Auslastungsanzeige. Aber die sollte sich ja nicht unterschiedlich verhalten, nur weil da eine andere CPU drin steckt. Eigentlich.
 
MichiLH2 schrieb:
Ja nutze die CPU-Auslastungsanzeige. Aber die sollte sich ja nicht unterschiedlich verhalten, nur weil da eine andere CPU drin steckt. Eigentlich.

Außer irgendetwas unter Windows kann mit dem Mehr an Kernen nicht umgehen, unter Linux jedoch schon.

Mich würde die Auslastung der einzelnen Kerne interessieren
 
Schafft die Kiste denn auch weniger? Wie sieht es aus, wenn du die Anzahl der Kerne halbierst?
 
Naja wieso soll sich das nicht unterscheiden wenn du beim Ryzen die doppelte Anzahl an Threads hast? Ist die Ausführung deines Programmes langsamer als unter Ubuntu? Mit dem Intel System kann man das ja nur bedingt vergleichen.
mfg
 
16 * ,78 = 12,48

Wahrscheinlich werden unter Windows nur 12 Threads gestartet die mit je 100 % laufen = 75 % Gesamt CPU Auslastung.
 
Die Windows CPU Auslastungsanzeige ist ziemlich problematisch und zeigt oft falsche Werte an. Da gab es schon Fälle dass Leute Prime 95 auf allen Kernen haben laufen lassen und die CPU am Limit war - und der Taskmanager hat 60% Auslastung angezeigt.

Wieso musst du deine Performance dermaßen indirekt mit einem schlecht geeigneten Tool. Miss die Performance doch direkt in dem du benchmarkst wie schnell das Programm arbeitet.
 
MichiLH2 schrieb:

Die Anzeige verleitet zu Fehlinterpretationen.
Da Windows die Last (schnell) zwischen den Cores hin und her schiebt sieht es so aus als ob alle Cores rechnen, aber keiner am Limit läuft.
Begrenze den Prozess mal nacheinander auf 1,2,4 und 12 Threads (Taskmanger, Rechtsklick, Zugehörigkeit festlegen - zumindest unter W7 ists es da) und schau dir dann die Diagramme an.
Wenn das Programm wirklich nur 12 Threads startet sollte es bei weniger als 12 zugewiesenen Threads auf 100% Last gehen.
 
Zurück
Oben