CPU Taktung

  • Hi zusammen,

    ich habe seit kurzen mal wieder einen RS und würde gerne 1-2 Gameserver installieren.


    laut /proc/cpuinfo ist ein Xeon Gold verbaut und taktet mit 2,3 Ghz.



    Laut Intel hat die CPU wohl einen Turbo von bis zu 3,7 Ghz.


    Nun die Frage: Welche Einstellung muss ich ändern, damit die CPU mit 3,7 Ghz durchgehend taktet? Die Gameserver sind sehr Single Core lastig, daher wäre es sehr gut, wenn ich das einstellen könnte.


    Die Anleitung unter https://wiki.ubuntuusers.de/Prozessortaktung/ hat leider nicht geholfen. Ich denke, die "Governor" Einstellung kann ich nicht vornehmen, weil es ja "nur" eine virtuelle Maschine ist.


    Vielen Dank und einen schönen dritten Advent! :)

    Gruß p4scal

    __________________


    Webhosting: Webhosting 2000 SE Plus

    Server: VPS 200 G8 Ostern 2019 | VPS 500 G8 Plus

  • Der Xeon Gold 6140 ist mit Speed Shift ausgestattet.

    Es gibt daher keinen Grund sinnlos Wärme zu produzieren und die Nutzbarkeit der benachbarten Cores zu senken. Dank Speed Shift wirst Du auch bei nur kurzzeitiger Single-Threaded Last kaum bemerken, dass die CPU erst im Bedarfsfall "hochgetaktet" wird.

  • Danke für die Antworten!

    Bei den Gameservern merkt es leider wohl im Spiel. Daher habe ich bisher die Gameserver auf einem Host mit hoher (grund)Taktrate gehostet.


    Ich werde es noch ein bisschen testen .. Vielleicht hat der ein oder andere noch eine Idee :)

    Gruß p4scal

    __________________


    Webhosting: Webhosting 2000 SE Plus

    Server: VPS 200 G8 Ostern 2019 | VPS 500 G8 Plus

  • Hay,


    für Gameserver ist ein ein virtualisierter Server (sei es RS oder VPS) ohnehin nicht ideal, weil Du Dir einen Server (aus Hardware) mit u.U. vielen Leuten teilst, somit hast Du keine Kontrolle, wie viele Ressourcen für Dich denn eigentlich noch üblich sind - auch bei dedizierten Kernen wie auf einem RS... denn Du weißt ja nicht, was die anderen in der Wohngemeinschaft gerade mit ihren Kernen anstellen - wenn da einer einen RS 8000 auf derselben Maschine hat und mir -j 12 einen Linux-Kernel baut, bleibt Dir nur noch der Grundtakt (oder ihm nur mit 8 seiner 12 dedizierten Kerne).


    Für einen echten Gameserver in Deinem Sinne brauchst Du einen echten dedizierten SERVER, also echte 100% Hardware, die nur von Dir verwendet wird. Bzw. Du mietest Dir Rackplatz und Versorgung.


    CU, Peter

  • Hay,


    auch bei dedizierten Kernen wie auf einem RS... denn Du weißt ja nicht, was die anderen in der Wohngemeinschaft gerade mit ihren Kernen anstellen - wenn da einer einen RS 8000 auf derselben Maschine hat und mir -j 12 einen Linux-Kernel baut, bleibt Dir nur noch der Grundtakt (oder ihm nur mit 8 seiner 12 dedizierten Kerne).


    Bis jetzt dachte ich immer, dass bei einem Server mit dedizierten Kernen mir diese auch exklusiv zustehen. Also selbst wenn jemand anders auf dem selben physischen Server seine Kerne voll ausreizt, betrifft das meine nicht bzw. nicht sehr stark).


    Oder habe ich da ein generelles Denkproblem?

  • Hay,

    Oder habe ich da ein generelles Denkproblem?

    Ja. Der Server ist virtuell, d.h. als allererstes hat der KVM die Hand auf Deine Ressourcen.


    Die Kerne stehen dir exklusiv zu. Der Prozessor hat eine TDP von 140W auf 18 Cores, diese darf nicht überschritten werden (erst recht nicht auf einem Server. Wir reden hier ja nicht von einem Prozesser, den Du manuell übertaktest). Wenn alle "auf Speed" laufen würden - vor allem dauerhaft - würde die TDP deutlich überschritten und Kerne werden heruntergeregelt, das macht die CPU von sich aus. Welche von den 18 Kernen das betrifft, kannst Du nicht beeinflussen und im Zweifel werden halt auch Deine 1, 2, 4 oder 8 runtergetaktet.


    Da endet die Exklusivität ( wie beim VMX-Flag, welches Du Dir aber dazukaufen kannst).


    CU, Peter

  • Dazu muss man erwähnen, dass der Turboboost so nicht funktioniert. Turboboost ist kein "Übertakten".


    Der Turboboost ermöglicht es kurzzeitig die Taktfrequenz einzelner CPU Cores zu erhöhen, dabei wird jedoch das TDP Limit der CPU überschritten wodurch die Grafikeinheit und andere nicht genutzte CPU Kerne runtergetaktet werden als Ausgleich.

    Wenn die CPU 3,7GHz als maximale Turbofrequenz hat kann ein einziger CPU Kern diese erreichen.

    Meist teilt sich der Turboboost jedoch auf 2 oder 4 Kerne auf und diese erreichen dann einen Bruchteil des maximalen Boost.


    Mein Stand ist, dass der Turboboost sowieso deaktiviert ist bei Netcup wie bei jedem anderen Hoster.


    https://de.wikipedia.org/wiki/Intel_Turbo_Boost

  • Turbo Boost funktioniert nicht, wenn alle Kerne Last haben: https://www.gamersnexus.net/gu…ee-lake-turbo-8700k-8600k

    Turbo Boost hängt davon ab, welche Art von Last es gibt: https://en.wikichip.org/wiki/i…VX_Turbo.2C_and_AVX_Turbo

    Turbo Boost ist zeitlich limitiert ( vor allem wegen avx, etc): http://www.tomshardware.co.uk/…cpu-stay-turbo-boost.html


    Du kannst natürlich im BIOS das Zeitlimit und die TDP bei Turbo Boost deaktivieren. Dann geht dein Rechner aber einfach aus.

  • für Gameserver ist ein ein virtualisierter Server (sei es RS oder VPS) ohnehin nicht ideal

    Diese Aussage als solches würde ich auf keinen Fall so Pauschal unterschreiben.


    Ich betreibe selber Gameserver auf virtuellen Maschinen ohne Probleme und profitiere am Ende eher davon, dass er sogar virtuell ist.

    Als Beispiel: Bei einem Ausfall der Festplatten muss ich micht nicht darum kümmern, dass diese wieder ans laufen kommen und spüre auch nichts von einem rebuild (raid) was bei einem dedizierten Server schon eher der Fall wäre.


    Zunächst würde ich mir anschauen, ob es wirklich nicht auf einem Root/VPS funktioniert, anstatt direkt auf dedizierte Hardware zurückzugreifen.


    In diesen speziellen Fall, wenn die Anwendung wirklich nur einen Thread nutzt, sollte sich auch der Entwickler mal an den Kopf fassen und zur Not dann doch den dedizierten Server nehmen.

  • Mir ist hinsichtlich der dedizierten Kerne der Unterschied zwischen root und vServer immer noch nicht ganz klar. Weil es zum Thema passt, stelle ich hier noch zwei Fragen ohne einen neuen Thread zu eröffnen.


    1) Sind dedizierte Kerne physische Cores mit mit 2 Threads und gilt dasselbe auch für vCores? Ich gehe davon aus, dass 1 Core 2 Threads hat.

    2) Wenn ich 2 dedizierte Kerne habe, stehen mir dann garantiert jederzeit 2 Kerne mit 2.3 GHz Takt zu 100% zur Verfügung, während ich im Vergleich dazu bei einem VPS mit 2 vCores diese Leistung im schlechtesten Fall unter Umständen teilen muss und vielleicht nur 50% der effektiven Leistung zur Verfügung habe?


    Sind meine Annahmen soweit richtig? Übertakten, bzw. Turbo Mode, will und brauch ich nicht, aber mir ist wichtig, dass ich immer 2 Cores mit 2.3 GHz und total 4 Threads verfügbar habe.

  • 1) Sind dedizierte Kerne physische Cores mit mit 2 Threads und gilt dasselbe auch für vCores? Ich gehe davon aus, dass 1 Core 2 Threads hat.

    Hyper-Threading wird nicht genutzt um die Anzahl der Cores "hochzuschummeln", ein Core ist ein physikalischer Core, NICHT ein Thread eines Cores. Teile eines Cores werden nicht vergeben, also 1 Thread ist immer gleich 1 Core. Wenn ein root Server 2 dezidierte Cores hat, dann hast du 2 Cores und siehst auch nur 2 Threads.


    2) Wenn ich 2 dedizierte Kerne habe, stehen mir dann garantiert jederzeit 2 Kerne mit 2.3 GHz Takt zu 100% zur Verfügung, während ich im Vergleich dazu bei einem VPS mit 2 vCores diese Leistung im schlechtesten Fall unter Umständen teilen muss und vielleicht nur 50% der effektiven Leistung zur Verfügung habe?

    Fast zu 100%. Felix erwähnte hier im Forum mal das ein paar Prozent Steal-Time immer mal vorkommen können und toleriert werden müssen, ich meine aber mich zu erinnern das diese jederzeit deutlich unter 5% liegen sollte (und meistens unter 0,1% liegt). Also steht dir mindestens 95% der Rechenleistung eines Cores zur Verfügung, meist aber 99% und mehr... kann man denk ich ohne Probleme auf 100% aufrunden ;) Man teilt sich dann halt nur die globalen CPU-Caches mit anderen (was unvermeidbar ist).


    Bei den vCores kann theoretisch alles passieren da dir nichts garantiert wird. Natürlich nutz netcup dies nicht aus und bietet trotzdem vernünftige Leistung, aber halt ohne Garantie 8)

  • Hyper-Threading wird nicht genutzt um die Anzahl der Cores "hochzuschummeln", ein Core ist ein physikalischer Core, NICHT ein Thread eines Cores. Teile eines Cores werden nicht vergeben, also 1 Thread ist immer gleich 1 Core. Wenn ein root Server 2 dezidierte Cores hat, dann hast du 2 Cores und siehst auch nur 2 Threads.

    Meine Unsicherheit diesbezüglich kommt aus den Specs zum Prozessor von Intel. Dort steht # of Cores: 18, # of Threads: 36.


    Übrigens: 5% sind für mich tolerierbar.

  • Hay,

    Meine Unsicherheit diesbezüglich kommt aus den Specs zum Prozessor von Intel. Dort steht # of Cores: 18, # of Threads: 36.

    Technisch betrachtet stimmt das.


    Die Threads kommen aber vom Hyperthreading und das ist eigentlich ein Trick über die CPU-eigenen Befehls-Pipelines. Für einen Rechner, der grundsätzlich nur eine Sache tut bzw. User bedient ist das meistens eine gute Sache, vor allem wenn die Software daraufhin optimiert ist.


    Aber in einer Multiuser-Umgebung kann Hyperthreading zu höherer Last oder verminderter Performance führen, da relativ häufig die Befehlspipeline verworfen werden muss, weil die Kommandos doch nicht so gut parallelisierbar sind.


    Deswegen schaltet man Hyperthreading üblicherweise auf Servern aus. Und alles, was single core Performance braucht, geht auf einen Thread per CPU besser als mit zwei.


    Aber bei diesem Thema kommt es in anderen Foren gerne zum "Krieg der Kerne" :D


    Ich habe einen PC mit 2 x Xeon 6C Prozessoren, also 12 Kerne und 24 Threads. Der einzige Grund, weswegen ich Hyperhreading angeschaltet lasse ist, weils so geil ausschaut, wenn man sich die CPU im Taskmanager oder mit Linux top anschaut :love:


    CU, Peter

  • Aber in einer Multiuser-Umgebung kann Hyperthreading zu höherer Last oder verminderter Performance führen, da relativ häufig die Befehlspipeline verworfen werden muss, weil die Kommandos doch nicht so gut parallelisierbar sind.


    Deswegen schaltet man Hyperthreading üblicherweise auf Servern aus. Und alles, was single core Performance braucht, geht auf einen Thread per CPU besser als mit zwei.

    Wenn man einen nicht Mixed-Workload fährt (d.h. keine Virtualisiering bzw. nur gleiche Anwendungen), dann fährt man mit HT schneller, wenn auch teilweise nur im Bereich von 10% bis 20%. Aber vor allem SpeedStep und jeder Art von Stromsparmechanismen sollte man tunlichst deaktiviert lassen.... Früher!


    Früher wurde hier tatsächlich die komplett Befehlspipeline verworfen. Ebenso gab es keine saubere CPU-Ordnung auf reale und HT-Kerne, Prozessor-Sockets, etc. Das ist aber seit über 10 Jahren nicht mehr gültig. Oder setzt hier noch jemand GSX-Server, etc? ;)


    Wem es näher interessiert: https://communities.vmware.com/docs/DOC-5101

  • Wow, danke! Das klingt plausibel, das wusste ich nicht. Jetzt ist der Groschen gefallen. Für mich bedeutet das, dass ich somit wahrscheinlich jetzt schon auf einen RS 2000 umsteigen muss. Wer weiss, vielleicht kommt mir der Adventskalender noch entgegen :)

  • Hier nochmal korrigiert mangels fehlender Korrektur-Rechte. Da waren ein paar Sachen verdreht.


    Wenn man einen nicht Mixed-Workload fährt (d.h. nur gleiche Anwendungen auf allen Kernen), dann fährt man eventuell ohne HT schneller. Mit HT ist man teilweise aber auch 10% bis 20% schneller. Vor allem SpeedStep und jeder Art von Stromsparmechanismen sollte man tunlichst deaktiviert lassen.... Früher!


    Früher wurde hier tatsächlich die komplett Befehlspipeline verworfen. Ebenso gab es keine saubere CPU-Zuordnung auf reale und HT-Kerne, Prozessor-Sockets, etc. Das ist aber seit über 10 Jahren nicht mehr gültig. Oder setzt hier noch jemand GSX-Server, etc? ;)


    Wem es näher interessiert: https://communities.vmware.com/docs/DOC-5101