Ich habe ein einfaches Hand-Benchmarking auf unserem (Live-) Datenbankserver außerhalb der Stoßzeiten durchgeführt und festgestellt, dass Abfragen zu etwas unregelmäßigen Benchmark-Ergebnissen führten .
Ich hatte vor einiger Zeit den Energiesparplan "Ausgeglichen" für alle unsere Server aktiviert, da ich dachte, dass sie nicht annähernd ausgelastet sind und auf diese Weise Energie gespart werden kann.
Ich war davon ausgegangen, dass dies keine signifikanten, messbaren Auswirkungen auf die Leistung haben würde. Allerdings , wenn die CPU Energiesparfunktionen sind Auswirkungen auf typische Leistung - vor allem auf dem gemeinsam genutzten Datenbankserver - dann bin ich nicht sicher , ob es lohnt sich!
Ich war ein wenig überrascht, dass unsere Web-Schicht selbst bei 35-40% Last von 2,8 GHz bei 1,25 V auf 2,0 GHz bei 1,15 V herunter taktet.
Ich erwarte voll und ganz, dass das Down-Clocking Strom spart, aber dieser Ladezustand scheint mir hoch genug zu sein, dass er auf die volle Taktrate ansteigen sollte.
Unser 8-CPU-Datenbankserver hat eine Menge Verkehr, aber eine extrem niedrige CPU-Auslastung (nur aufgrund der Art unserer SQL-Abfragen - viele davon, aber wirklich einfache Abfragen). Es ist in der Regel bei 10% oder weniger sitzen. Ich gehe davon aus, dass es noch mehr Downclocking gab als der obige Screenshot. Als ich die Energieverwaltung auf "hohe Leistung" umstellte, konnte ich feststellen, dass sich mein einfacher SQL-Abfrage-Benchmark um etwa 20% verbesserte und von Lauf zu Lauf sehr konsistent wurde .
Ich glaube, ich dachte, dass die Energieverwaltung auf Servern mit geringer Auslastung eine Win-Win-Situation ist - kein Leistungsverlust und erhebliche Energieeinsparungen, da die CPU in den meisten Servern häufig die Nummer 1 oder die Nummer 2 der Energieverbraucher ist. Das scheint nicht der Fall zu sein; Wenn die CPU-Energieverwaltung aktiviert ist, werden Sie Leistungseinbußen hinnehmen, es sei denn, Ihr Server ist immer so stark ausgelastet, dass die Energieverwaltung sich selbst ausgeschaltet hat. Dieses Ergebnis hat mich überrascht.
Hat jemand andere Erfahrungen oder Empfehlungen für die CPU-Energieverwaltung für Server? Ist es etwas, das Sie auf Ihren Servern ein- oder ausschalten? Haben Sie viel Strom gespart? Haben Sie das Benchmarking ein- und ausgeschaltet?
quelle
Antworten:
Bei Servern bin ich mir nicht sicher, aber das derzeitige Denken bei eingebetteten Geräten beschränkt sich nicht auf Schritte zwischen geringem Stromverbrauch und geringem Stromverbrauch, da die damit verbundene zusätzliche Zeit Ihre Energieeinsparungen verschlingt Die CPU-Auslastung wird tatsächlich so hoch wie möglich eingestellt, um den Job zu beenden und den Leerlauf bei geringer Leistung wieder aufzunehmen.
quelle
Ich habe immer jede Art von Energieverwaltung auf Servern deaktiviert. Ich bin neugierig auf das, was andere erlebt haben, aber ich bin immer davon ausgegangen, dass es immer eine gewisse Verzögerung geben wird, um die CPU auf 100% zu "steigern", und in einem Rechenzentrum, das eine solche Verzögerung einstellt ist inakzeptabel.
Die von Ihnen angegebenen Daten scheinen diese Annahme zu stützen. Daher habe ich keine spezifischen Tests durchgeführt, aber es scheint, dass Sie keine Energiespartechnologie in Windows oder im BIOS verwenden sollten. Ich schalte sogar die Einstellungen für das Ausschalten des Netzwerks und der PCI-Karte aus, um ultra-konservativ zu sein.
quelle
Wie viel Strom wird dies tatsächlich sparen Sie :
Wenn Sie sich entscheiden , dass diese Funktion die Stabilität Ihrer Server gefährden könnten (ich habe Erfahrung mit diesem), dann könnten Sie an anderer Stelle für die Energieeinsparung suchen.
Ich würde versuchen herauszufinden, wie viel Energie dies für die Anzahl der Server, die Sie haben, einsparen könnte (obwohl Sie dies vielleicht bereits getan haben). Da es sich bei dem Diagramm, das Sie in Ihrer Antwort angegeben haben, um Prozentsätze handelt, sind die Einsparungen für Ihr Unternehmen möglicherweise sehr gering. Wenn Sie nicht über viele Server verfügen, ist dies möglicherweise nicht der Fall, und durch bewegungsaktivierte Lichter oder ähnliches in Ihrem Büro wird möglicherweise mehr Energie gespart (auch wenn dies nicht so marktfähig ist).
Ich erinnere mich, dass ich vor ein paar Jahren gelesen habe, dass eine der großen amerikanischen Autofirmen (vergessen Sie, welche) Druck hatte, die Abgasemissionen ihrer Autos zu ändern. Stattdessen zeigte das Unternehmen, dass es für einige Fabriken viel billiger wäre, wenn sie ihre Fabriken kappen würden, was zu weitaus mehr Emissionsersparnissen führen würde.
Datenträger nicht vergessen:
Möglicherweise möchten Sie auch überprüfen, ob diese Energiesparfunktion die Datenträger nicht herunterfährt, wenn sie nicht verwendet werden. Möglicherweise werden für eine Weile alle SQL-Abfrageergebnisse im RAM gespeichert, die Festplatte wird verwendet und in den Energiesparmodus versetzt (Sie sind sich nicht sicher, ob dies auch so funktioniert). Wenn dies passieren könnte, gäbe es eine große Leistungsstrafe, während sich alles wieder dreht.
quelle
Vorwort: Mit SpeedStep mache ich ein paar Sprünge / Verallgemeinerungen zu Intel Xeons und ihrer Stromsparfunktion. In Bezug auf die Intel Xeon " Yorkfield " 45-nm-CPUs scheinen die Enhanced Intel SpeedStep-Technologie (EIST) und der Enhanced Halt State (C1E) der eigentliche Schuldige zu sein. Ich stimme Ihrer Aussage zu, dass das Einschalten solcher Energieverwaltungsfunktionen zur Energieeinsparung beiträgt. Wenn die CPUs jedoch die Energie unter Last benötigen, kehrt das System zu den normalen Einstellungen für die Spannungstaktgeschwindigkeit zurück. Es scheint, dass EIST und C1E einige Nebenwirkungen haben, die bei Verwendung von entweder / oder Option im BIOS nicht intuitiv impliziert werden. Nach dem Durchsuchen zahlreicher Übertaktungswebsites scheinen diese beiden Einstellungen im BIOS ziemlich frustrierend zu sein.
Von http://www.overclock.net/intel-cpus/376099-speedstep-guide-why-does-my-processor.html :
Während Ihre Leistungseinstellungen für „High Performance“ eingestellt ist wahrscheinlich die beste Einstellung für einen Datenbankserver, ich bin ziemlich sicher , entweder EIST und / oder C1E verursachte die CPUs unter führen , obwohl sie sollten weg wieder in den normalen Einstellungen haben , wenn die Last wesentlich erhöht. Die große Einschränkung für mich scheint zu sein: "Was ist eine erhebliche Last?" Laut der Website overclockers.net behauptet EIST, diese "Energieschema" -Einstellungen zu verwenden, um Ihre CPU-Einstellungen zu manipulieren. Es gibt jedoch keinen Hinweis auf den Prozentsatz der Last oder darauf, wie lange gewusst werden muss, wann die CPUs wieder auf normale Spannung geschaltet werden müssen.
Auch hier bin ich kein Experte auf dem Gebiet der Intel-CPUs, aber ich würde wetten, dass Sie durch Anpassen dieser beiden Einstellungen die gewünschte Energieeinsparung und die Leistung erzielen, die Sie erzielen sollten , aber bei der Einstellung "Maximale Leistung" bleiben ist genauso effektiv, ohne dass ein Neustart erforderlich ist.
quelle
Die schnelle Antwort lautet: Natürlich beeinträchtigt das Energiesparen die Leistung.
Die längere Antwort macht keinen Spaß. Probieren Sie eine Einstellung aus, testen Sie die Leistung und entscheiden Sie, womit Sie leben können.
Anwendungen und Systeme sind so kompliziert, dass es hier keine Antwort gibt, außer "Ja, Reaktionszeit und andere Systemgeschwindigkeiten werden beeinflusst". Wenn es so viel langsamer ist als die Festplatte oder das Netzwerk, dann haben Sie die Idee. In der Realität testen.
quelle
Ich versuche immer, so viele Server wie möglich zu VMen, aber wo ich einen Server "bare-metal" machen muss, ist es normalerweise so, wie ich es brauche oder will, um eine absolut konsistente Leistung zu erzielen. Deshalb schalte ich für diese geschäftskritischen Maschinen NIEMALS Stromsparmaßnahmen aus genau den Gründen ein, die Sie erleben.
*** Knall-los-mein-grünes-Zeugnis *
quelle
Ein paar Dinge:
Überprüfen Sie im BIOS, ob die Energieverwaltung unter der Kontrolle des Betriebssystems steht. Möglicherweise wird es von der Firmware verwaltet und verwendet daher ein dummes, nicht optimales Prozessor-Power-Management.
Überprüfen Sie, ob möglicherweise fehlende Hotfixes für die Energieverwaltung vorhanden sind. Damals, als Vista / Server 2008 herauskam, gab es einige bemerkenswerte.
Überprüfen Sie die detaillierte Konfiguration für Balanced. Möglicherweise führt eine andere Energiesparfunktion zu einer Leistungsminderung. Theoretisch sollte der Leistungseinbruch durch EIST vernachlässigbar sein. Andererseits hat eine SQL-Datenbank einen eindeutigen Footprint und es ist denkbar, dass er durch das Prozessor-Power-Management überproportional beeinflusst wird.
quelle
Einige Informationen von Microsoft (Word Doc Format, leider)
Verbessern Sie die Energieeffizienz und den Stromverbrauch mit Windows Server 2008 R2
Diese speziellen Energiesparfunktionen der CPU auf Hardware-Ebene sind natürlich unter allen Betriebssystemen gleich. Es ist nur eine Frage, ob Sie sie einschalten oder nicht.
Das Diagramm zur Energieeinsparung ohne CPU-Energieverwaltung im Vergleich zur CPU-Energieverwaltung:
Wir sind uns darüber im Klaren, dass die CPU-Energieverwaltung bei hoher Auslastung automatisch deaktiviert wird (und dieses Diagramm zeigt dies). Was mir jedoch nicht klar ist, ist, ob sich bei geringer Auslastung Auswirkungen auf die Gesamtleistung des Servers ergeben, z. B. die Bearbeitungszeit für einfache SQL Server-Abfragen.
quelle
Sie sollten niemals auf die Windows-Einstellungen oder den Bios Speedstep zurückgreifen, der auf Intel-Prozessoren verfügbar ist, und es gibt auch ein AMD-Äquivalent. Dies kann zu Problemen führen, und ich habe solche Probleme gesehen, bei denen die CPU-Uhr mit Speedstep unregelmäßig auf und ab sprang, obwohl die CPU-Ressourcennutzung konsistent war.
Wenn Sie grüner sein wollen und Strom sparen, verwendet Low - Power - Prozessoren, mit den L - Zeichen vor dem Modellnamen bezeichnet, wie L 54XX - Serie und L 55XX - Serie von Intel.
BEARBEITEN: Es tut mir leid, wenn ich den Eindruck habe, dass diese Funktion immer versagt, ich wurde einfach davon verbrannt, und in einem missionskritischen System kann ich so etwas nicht passieren, also versuche ich einfach zu bleiben weg davon.
quelle
Wenn es sich um die Leistung eines Servers handelt, gibt es verschiedene Betrachtungsweisen. Es gibt die offensichtliche Reaktionszeit (ähnlich der Netzwerklatenz) und den Durchsatz (ähnlich der Netzwerkbandbreite).
In einigen Versionen von Windows Server sind die Einstellungen für die ausgeglichene Stromversorgung standardmäßig aktiviert. Wie Jeff betonte. Windows 2008 R2 ist einer von ihnen. Heutzutage sind nur noch wenige CPUs Single-Core-Prozessoren. Diese Erklärung gilt daher für fast alle Windows-Server, auf die Sie stoßen, mit Ausnahme von Single-Core-VMs. (mehr dazu später).
Wenn der Energiesparplan aktiv ist, versucht die CPU, den Stromverbrauch zu drosseln. Dies geschieht durch Deaktivieren der Hälfte der CPU-Kerne in einem Prozess, der als "Parken" bezeichnet wird. Es steht jeweils nur die Hälfte der CPUs zur Verfügung, sodass in verkehrsarmen Zeiten weniger Strom verbraucht wird. Dies ist an und für sich kein Problem.
Was ein Problem ist, ist die Tatsache, dass Sie, wenn die CPUs nicht geparkt sind, die für das System verfügbaren CPU-Zyklen verdoppelt und die Belastung des Systems plötzlich aus dem Gleichgewicht gebracht haben, beispielsweise von 70% Auslastung auf 35% Auslastung. Das System prüft dies und denkt, nachdem der Datenverkehr verarbeitet wurde: "Hey, ich sollte dies ein wenig zurückwählen, um Strom zu sparen." Und so ist es auch.
Hier ist der schlechte Teil. Um eine ungleichmäßige Verteilung von Wärme und Strom in den CPU-Kernen zu verhindern, werden die zuletzt nicht geparkten CPUs tendenziell geparkt. Damit dies ordnungsgemäß funktioniert, muss die CPU alle Daten aus den CPU-Registern (L1-, L2- und L3-Cache) an einen anderen Speicherort (höchstwahrscheinlich Hauptspeicher) übertragen.
Nehmen wir als hypothetisches Beispiel an, Sie haben eine 8-Kern-CPU mit C1-C8.
In diesem Fall werden alle für einige Zeit aktiv und werden dann vom System wie folgt geparkt:
Dabei ist jedoch ein erheblicher Overhead mit dem Leeren aller Daten aus dem L1-L3-Cache verbunden, damit bei Programmen, die aus der CPU-Pipeline geleert wurden, keine seltsamen Fehler auftreten.
Es gibt wahrscheinlich einen offiziellen Namen dafür, aber ich erkläre es gerne als CPU-Thrashing. Grundsätzlich verbringen die Prozessoren mehr Zeit mit der internen Verschiebung von Daten als mit der Bearbeitung von Arbeitsanforderungen.
Wenn Sie eine Anwendung haben, deren Anforderungen eine geringe Latenzzeit erfordern, müssen Sie die Einstellungen für die ausgeglichene Stromversorgung deaktivieren. Wenn Sie sich nicht sicher sind, ob dies ein Problem ist, gehen Sie wie folgt vor:
Wenn Sie sehen, dass einer von ihnen geparkt wird, werden Sie feststellen, dass die Hälfte von ihnen zu einem bestimmten Zeitpunkt geparkt wird, alle werden angezündet, und die andere Hälfte wird geparkt. Es wechselt hin und her. Somit sind die System-CPUs überlastet.
Virtuelle Maschinen: Dieses Problem ist noch schlimmer, wenn Sie eine virtuelle Maschine ausführen, da der zusätzliche Aufwand für den Hypervisor besteht. Im Allgemeinen muss für die Ausführung einer VM auf der Hardware zu jedem Zeitpunkt ein Zeitschlitz für jeden der Kerne verfügbar sein.
Wenn Sie über eine Hardware mit 16 Kernen verfügen, können Sie VMs mit mehr als 16 Gesamtkernen ausführen. Für jede Zeitscheibe sind jedoch nur bis zu 16 virtuelle CPUs für diese Zeitscheibe zulässig, und der Hypervisor muss für alle Kerne einer VM geeignet sein in diese Zeitscheibe. Es kann nicht über mehrere Zeitscheiben verteilt werden. (Eine Zeitscheibe ist im Wesentlichen eine Menge von X CPU-Zyklen. Sie kann 1000 oder 100.000 Zyklen betragen.)
Bsp .: 16 Core-Hardware mit 8 VMs. 6 haben 4 virtuelle CPUs (4C) und 2 haben 8 virtuelle CPUs (8C).
Zeitscheibe 1: 4x4C Zeitscheibe 2: 2x8C Zeitscheibe 3: 2x4C + 1x8C Zeitscheibe 4: 1x8C + 2x4C
Was der Hypervisor nicht tun kann, ist die Hälfte der Zuteilung für eine Zeitscheibe auf die ersten 4 CPUs einer 8-vCPU-VM aufzuteilen und dann in der nächsten Zeitscheibe den Rest auf die anderen 4 vCPUs dieser VM aufzuteilen. Es ist alles oder nichts in einer Zeitscheibe.
Wenn Sie Microsoft Hyper-V verwenden, können die Einstellungen für die Stromversorgungssteuerung im Host-Betriebssystem aktiviert werden. Dies bedeutet, dass sie auf die Client-Systeme übertragen werden und sich auch auf diese auswirken.
Sobald Sie sehen, wie dies funktioniert, können Sie leicht erkennen, wie die Verwendung der Einstellungen für die ausgeglichene Stromregelung zu Leistungsproblemen und zu langsamen Servern führt. Eines der zugrunde liegenden Probleme besteht darin, dass die eingehende Anforderung warten muss, bis der Vorgang zum Parken / Entparken der CPU abgeschlossen ist, bevor der Server auf die eingehende Anforderung antworten kann, unabhängig davon, ob es sich um eine Datenbankabfrage, eine Webserveranforderung oder etwas anderes handelt .
Manchmal parkt oder entparkt das System die CPUs während einer Anfrage. In diesen Fällen startet die Anforderung in der CPU-Pipeline, wird aus dieser entfernt und ein anderer CPU-Kern übernimmt den Prozess von dort. Wenn es sich um eine ausreichend umfangreiche Anforderung handelt, kann dies im Verlauf der Anforderung mehrmals vorkommen und eine 5-Sekunden-Datenbankabfrage in eine 15-Sekunden-Datenbankabfrage ändern.
Das größte Problem bei der Verwendung von Balanced Power ist, dass sich die Systeme langsamer anfühlen, wenn Sie auf nahezu jede Ihrer Anforderungen reagieren.
quelle