Wird das Deaktivieren von Hyperthreading die Leistung unserer SQL Server-Installation verbessern?

28

Verwandte Themen : Aktuelle Informationen zu SQL Server und Hyperthreading

Kürzlich haben wir unseren Windows 2008 R2-Datenbankserver von einem X5470 auf einen X5560 aktualisiert . Die Theorie ist, dass beide CPUs eine sehr ähnliche Leistung haben, wenn überhaupt, ist der X5560 etwas schneller.

Die Leistung von SQL Server 2008 R2 war am letzten Tag jedoch ziemlich schlecht, und die CPU-Auslastung war ziemlich hoch.

Die Lebenserwartung der Seiten ist enorm. Wir erhalten fast 100% Cachetreffer für die Seiten, daher ist der Speicher kein Problem.

Als ich lief:

SELECT * FROM sys.dm_os_wait_stats 
order by signal_wait_time_ms desc

Ich habe:

wait_type waiting_tasks_count wait_time_ms max_wait_time_ms signal_wait_time_ms
-------------------------------------------------- ---------- -------------------- -------------------- -------------------- --------------------
XE_TIMER_EVENT 115166 2799125790 30165 2799125065
REQUEST_FOR_DEADLOCK_SEARCH 559393 2799053973 5180 2799053973
SOS_SCHEDULER_YIELD 152289883 189948844 960 189756877
CXPACKET 234638389 2383701040 141334 118796827
SLEEP_TASK 170743505 1525669557 1406 76485386
LATCH_EX 97301008 810738519 1107 55093884
LOGMGR_QUEUE 16525384 2798527632 20751319 4083713
WRITELOG 16850119 18328365 1193 2367880
PAGELATCH_EX 13254618 8524515 11263 1670113
ASYNC_NETWORK_IO 23954146 6981220 7110 1475699

(10 Zeile (n) betroffen)

Ich bin auch gelaufen

-- Isolate top waits for server instance since last restart or statistics clear
WITH Waits AS (
   SELECT 
        wait_type, 
        wait_time_ms / 1000. AS [wait_time_s],
        100. * wait_time_ms / SUM(wait_time_ms) OVER() AS [pct],
        ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS [rn]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE',
    'SLEEP_TASK','SLEEP_SYSTEMTASK','SQLTRACE_BUFFER_FLUSH','WAITFOR','LOGMGR_QUEUE',
    'CHECKPOINT_QUEUE','REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH',
    'BROKER_TASK_STOP','CLR_MANUAL_EVENT','CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE',
    'FT_IFTS_SCHEDULER_IDLE_WAIT','XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN'))

SELECT W1.wait_type, 
    CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
    CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
    CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2 ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 95; -- percentage threshold

Und bekam

wait_type wait_time_s pct running_pct
CXPACKET 554821.66 65.82 65.82
LATCH_EX 184123.16 21.84 87.66
SOS_SCHEDULER_YIELD 37541.17 4.45 92.11
PAGEIOLATCH_SH 19018.53 2.26 94.37
FT_IFTSHC_MUTEX 14306.05 1.70 96.07

Dies zeigt eine enorme Menge an zeitsynchronisierenden Abfragen, die Parallelität beinhalten (hohes CXPACKET). Darüber hinaus werden vereinzelt viele dieser Problemabfragen auf mehreren Kernen ausgeführt (wir haben nirgendwo in unserem Code MAXDOP-Hinweise).

Der Server ist seit ungefähr einem Tag nicht mehr ausgelastet. Bei der Ausführung von Abfragen treten große Abweichungen auf. In der Regel scheinen viele Abfragen langsamer zu sein als auf unserem vorherigen DB-Server, und die CPU ist sehr hoch.

Wird das Deaktivieren von Hyperthreading dazu beitragen, die CPU-Auslastung zu verringern und den Durchsatz zu erhöhen?

Sam Saffron
quelle
Denken Sie daran, dass CXPACKET nicht bedeutet, dass viel Zeit darauf wartet, dass Prozesse zusammengeführt werden. CXPACKET bedeutet, dass der Thread darauf wartet, dass ein anderer Thread seine Verarbeitung beendet. Sie müssen sich eine bestimmte Abfrage ansehen, bei der ein Thread im CXPACKET wartet, und sehen, auf welche anderen Threads neben CXPACKET gewartet wird. Es ist normalerweise IO oder Netzwerk. In der obigen Ausgabe warten Sie auf Latches und werden descheduled. Einige Abfragen müssen optimiert werden, oder Sie müssen herausfinden, warum die Latches verwendet werden.
Mrdenny
In unserem Fall war CXPACKET hoch, da die anderen Threads nur übermäßig viel aus dem Cache lesen (20 Millionen logische Lesevorgänge pro Abfrage). Unser Fall war wiederum ein schlechter Antisemijoin mit einer partitionierten Tabelle, die nur aus 700.000 Zeilen bestand.
Ozamora
@mrdenny, ja, die Wartezeit für hohe Latch-Werte betrifft uns, wir untersuchen sie derzeit.
Sam Saffron

Antworten:

10

Ich bin immer noch der Meinung, dass das Testen Ihrer spezifischen Arbeitslast gemäß der ursprünglichen Antwort der einzige Weg ist, um sicher zu sein. Es ist keine ideale Antwort, wenn Sie versuchen, ein Produktionssystem zu optimieren (daher würde ich fragen, ob es möglich ist, ein identisches Testfeld in Systemen zu erhalten, in denen Leistung und Verfügbarkeit wirklich wichtig sind), aber es ist die einzige, die mir wirklich zusagt mit.

Wir können über die Theorie sprechen, ob Hyperthreading die Dinge im Allgemeinen verletzen oder verbessern sollte (ich finde, es ist wahrscheinlicher als Hilfe auf Servern, also würde ich es für eine "generische" Bereitstellung wahrscheinlich deaktivieren), aber es gibt sie Nur ein Weg, um sicher zu gehen, ob es in Ihrem speziellen Fall einen Unterschied macht, und das ist, versuchen Sie es und sehen Sie.

Rob Moir
quelle
3
Hinweis: Ich habe nicht abgelehnt, wir brauchen jede Hilfe, die wir bekommen können. Wir möchten jedoch Stiche im Dunkeln auf einem Produktionssystem vermeiden. Ich möchte sicherstellen, dass wir genügend Diagnosen gesammelt haben, bevor Sie mit dieser Einstellung spielen.
Sam Saffron
3
Ich bin sicher, Sie möchten es vermeiden, mit einem Produktionssystem zu spielen. In einer idealen Welt hätten wir aus diesem Grund alle Testumgebungen, die mit der Produktion identisch sind. Ich bin damit einverstanden, die Produktion aus Spekulation nicht ändern zu wollen. Ich stehe jedoch zu meiner Antwort: Das Testen bestimmter Workloads ist ein wichtiger Bestandteil jeder Bereitstellung, und jeder, der Ihnen sagt, dass dies anders ist, ist ein Scharlatan. Für mich deuten alle Anzeichen darauf hin, dass Hyperthreading hier ein Problem ist, aber wir können den ganzen Tag und die ganze Nacht über Dinge sprechen, und es wird immer noch nur einen Weg geben, um sicher zu sein.
Rob Moir
5
Hier upvote - ich stimme der Antwort zu. Die allgemeine Antwort lautet: Hyperthreading deaktivieren. Konkretere Antwort ist: Es kommt auf die Besonderheiten an und MUSS GEPRÜFT werden.
TomTom
1
Seltsamerweise denke ich, dass dies die beste Antwort ist, die akzeptiert werden kann. Das Herumspielen mit Maxdop-Einstellungen kann zu vielen Problemen führen. Nehalem-CPUs sind viel schneller als die kernbasierten Xeons, selbst bei leicht langsameren Taktgeschwindigkeiten. Ich finde die l2-Cache-Argumente ein bisschen von einem roten Hering, weil der L3-Cache so viel größer ist. Als Nachtrag siehe: blog.stackoverflow.com/2010/10/database-upgrade , wenn jemand mehr als 20% Treffer / Gewinn sieht ... liegt es wahrscheinlich nicht an HT.
Sam Saffron
Ich habe das Gegenteil von @TomTom und @Robert erlebt. Ich habe festgestellt, dass HT on normalerweise 10-15% besser ist als off. Die Gelegenheit, bei der das Ausschalten die Leistung verbessert, war in der Tat selten.
Brian Knoblauch
12

I stimme zu

  • Im besten Fall lautet die Empfehlung "Probieren Sie HyperThreading für Ihre Workload aus und sehen Sie, was passiert". Wir machen das gerade, während ich tippe, und ... es ist nicht gut!
  • Sie sollten wahrscheinlich immer mit deaktiviertem HyperThreading beginnen, da dies am sichersten ist

Es sieht so aus, als ob wir zwei Dinge abstimmen sollten:

  1. MAXDOP (Maximale Parallelitätsgrade). Alles, was ich lese, deutet darauf hin, dass es wahrscheinlich eine schlechte Idee ist, dies uneingeschränkt zu tun. In der Microsoft-Dokumentation heißt es:

    Das Setzen dieser Option [MAXDOP] auf einen größeren Wert [als 8] führt häufig zu unerwünschtem Ressourcenverbrauch und Leistungseinbußen.

    etwas höheres als 8wird generell nicht empfohlen .. also setze ich es 4erstmal auf. Es war anfangs Null (unbegrenzt).

  2. Kostenschwelle für Parallelität. Anscheinend wird der Standardwert von 5hier nach einigen von mir gefundenen SQL MVP-Beiträgen als ziemlich niedriger Standardwert angesehen. Wir können ihn optimieren, um zu reduzieren, wie viel Parallelität der Scheduler überhaupt versucht.

Aber ehrlich gesagt fühlen sich diese als Workarounds an. Ich denke, die wahre Lösung für unsere Arbeitslast (Volltextindexlast) ist die Deaktivierung von HT.

Jeff Atwood
quelle
4
MAXDOP verursacht auch Probleme mit HT, da möglicherweise versucht wird, zwei Threads auf derselben CPU auszuführen, wenn Sie beispielsweise 8 Kerne und 16 Threads haben und Ihr maxdop auf 10 festgelegt ist. Im Allgemeinen sollte 1 MAXDOP pro logischem Prozessor das Maximum sein. Und das Ausführen von zwei Threads auf derselben CPU für denselben Prozess ist irgendwie sinnlos.
Mark Henderson
2
@Farseeker Das passiert nur, wenn Sie kein HyperThreading-fähiges Betriebssystem haben. Windows neuer als 2000 ist sich dessen bewusst.
Mircea Chirea
Es ist erwähnenswert, dass diese Maxdop-Overrides nur Probleme verursachten. Standard war in Ordnung für uns
Sam Saffron
2
Die Standardversion von SQL Server erreicht bei MAXDOP ohnehin maximal 4, wenn sie nicht eingeschränkt wird. Brauchen Sie Enterprise, um höher zu gehen. Wir hatten einige Workloads, die mit MAXDOP von 1 am schnellsten gelaufen sind (Nicht-HT-Box, die mehrere 8-Core-AMDs ausführt) ...
Brian Knoblauch
1
@Brian Knoblauch - Ich weiß das über ein Jahr später, aber ich habe festgestellt, dass die "Standardversion von SQL Server bei MAXDOP ohnehin maximal 4 beträgt, wenn sie unbegrenzt bleibt". Wir sprechen derzeit über die Verwendung von MAXDOP bei der Arbeit, sind jedoch nicht sicher, worauf es eingestellt werden soll. Dies bedeutet im Grunde, 4 ist das gleiche wie ungebunden richtig?
Jeremy A. West
9

Anandtech stellte fest, dass es mit der reinen Leselast ein wenig weh tat und mit einer hohen Schreiblast ein bisschen wie ein Gewinn war. Ich habe nichts gesehen, was mich glauben lassen würde, dass es Ihnen einen viel schlechteren Treffer als -5% oder einen viel besseren Gewinn als 15% bescheren würde. Beachten Sie, was mit einem Atom ein großer Gewinn ist, aber das ist eine sehr merkwürdige CPU.

Alles, was Sie geändert haben, war die CPU? Sie haben von 12 MB Cache und 4 Threads, also 3 MB Cache pro Thread, auf 8 MB Cache und 8 Threads, also 1 MB pro Thread, gewechselt. Nun, das ist zu einfach, aber ich wette, das ist es, was Sie umbringt. Früher haben Sie Abfragen im Cache ausgeführt und jetzt werden sie aus dem RAM ausgeführt, da sie mehr als 1 MB, aber weniger als 3 MB benötigen. Das Ausschalten von HT wird wahrscheinlich helfen, aber ich würde auf die alte CPU zurückgreifen. Deaktivieren Sie HT, und Sie erhalten 2 MB pro Thread, aber wenn Ihre Arbeitslast so stark ausfällt, hilft dies nicht. Es kann durchaus sein, dass die alte 12-MB-Cache-CPU für Ihre Arbeitslast erheblich schneller ist.

Ich würde versuchen, HT auszuschalten und zu prüfen, ob dies eine Verbesserung darstellt, aber ich vermute, dass der Cache für Ihre Arbeitslast von größter Bedeutung ist und Sie möglicherweise wieder auf den 12-MB-Chip zurückgreifen müssen.

Ronald Pottol
quelle
3
Der L2-Cache pro Core-Beobachtung ist eine massive Vereinfachung, da die CPU eine volle Generation voraus ist (Nehalem / Core i7 vs. Core 2 Quad-Klasse).
Jeff Atwood
@Jess, @Ronald und Nehalem haben wenig L2-Cache. Der Hauptteil ist L3, der von mehreren Kernen gemeinsam genutzt wird.
Mircea Chirea
7

Hyperthreading ist im besten Fall nur eine Methode, um das Wechseln von Aufgaben vom Betriebssystem weg zu abstrahieren und auf den Würfel zu setzen, und zwar mit direktem Zugriff auf den L1- und L2-Cache, wodurch das Wechseln von Aufgaben zu einem Crapload schneller wird.

Tests mit VMWare haben ergeben, dass das Deaktivieren von HT unter Standardlast keinen erkennbaren Unterschied und unter hoher Last einen Anstieg um 5% zur Folge hat, da ESXi intelligent genug ist, um den Unterschied zwischen dem "echten" Thread und dem "falschen" Thread zu kennen (Es gibt viel mehr als das, aber das ist in Laien ausgedrückt). SQL Server 2005 ist nicht ganz so schlau, aber in Kombination mit einem aktuellen Betriebssystem sollte die Deaktivierung von HT kaum von Vorteil sein.

Trotzdem stimme ich Ronald zu, dass es höchstwahrscheinlich Ihr L2-Cache sein wird. Ein Rückgang der Cache-Größe um 33% ist erheblich, und wenn wir unsere SQL Server spezifizieren, streben wir jedes Mal einen Cache über die reine Taktrate an.

Mark Henderson
quelle
Können Sie die Affinität extern festlegen, sodass die richtigen 4 Kerne von SQL ignoriert werden?
Sam Saffron
3
Im Allgemeinen würden Sie die Affinität für jeden anderen CPU-Thread festlegen, aber solange MAXDOP richtig festgelegt ist, sehe ich keinen Grund, die Affinität überhaupt festzulegen. Mit HT wird der erste Thread, der auf einer CPU getroffen wird, zum "Hauptthread" und der zweite Thread zum "HT" -Thread. Es gibt jedoch keine echten "main" - und "ht" -Threads, da die Reihenfolge umgekehrt ist, wenn die Task wechselt.
Mark Henderson
Nehalem-basierte CPUs verfügen über einen SEHR, SEHR KLEINEN L2-Cache, der größtenteils von L3 gemeinsam genutzt wird.
Mircea Chirea
7

Aufgrund meiner Erfahrung ließ HT E / A-Vorgänge auf meinen aktiven Knoten in einem Windows 2008 R2-Cluster (auf dem SQL Server 2008 R2 ausgeführt wird) für immer dauern. Interessanterweise spiegelte sich dies weder in den Wartestatistiken noch in dem PSS-Tag wider, den ich für den Microsoft-Support ausgeführt habe.

Die Art und Weise, wie ich niedrige E / A bemerkte, bestand nur darin, die Zähler des Betriebssystems für die physische Festplatte zu überwachen. Wie Sam betonte, schrieb ich hier und hier darüber

Wenn Sie KEINE E / A-Probleme haben und CPU-gebunden sind, sollten Sie folgendermaßen beginnen:

Stellen Sie fest, welche Prozesse und T-SQL-Blöcke die meiste CPU-Auslastung verursachen. Nach unserer Erfahrung haben wir, nachdem wir das Problem mit E / A behoben hatten (indem wir HT deaktiviert haben), Code identifiziert, der 2008 R2 eine fürchterliche Leistung erbrachte und 2005 einwandfrei lief. Ich habe hier darüber geschrieben .

Führen Sie unter hoher Last Adam Machanics sp_whoisactive aus. Sie können es hier herunterladen . Wir hatten eine sehr hohe CPU-Auslastung aufgrund der übermäßigen Anzahl logischer Lesevorgänge (20 Millionen pro Abfrage) aufgrund eines wirklich schlechten Plans. Unsere Prozesse führten Anti-Semi-Joins mit partitionierten Tabellen durch.

Meine nächste Empfehlung lautet, Profiler auszuführen, um eine Reihe von T-SQL-Code zu identifizieren, die sowohl hohe CPU- als auch E / A-Werte aufweisen.

Mit den oben genannten Schritten konnten wir die anstößigen Prozesse optimieren und von einer zu 85% anhaltenden CPU-Auslastung auf fast null wechseln.

Viel Glück und bitte zögern Sie nicht, mir eine Nachricht zu schicken, wenn Sie eine Lösung finden, da ich den Fall meinem Blog hinzufügen möchte.

Vielen Dank

Oscar

ozamora
quelle
1
+1 für den Profiler, hat mich oft gerettet, sobald ein Problem erkannt wurde
Mark Henderson
+1 danke für all deine Vorschläge, das Einstellen unserer SQL auf ein vernünftiges Niveau ist ein totaler Albtraum. Wir sind ziemlich stark vom Volltext abhängig, wenn es um Tags geht. Oft suchen wir nach Listen mit Elementen in bestimmten Tags, um das Ganze zu erfassen setzen und filtern. Wenn Sie beispielsweise eine Liste mit Fragen mit den Tags [x] und [y] nach Datum sortieren möchten, müssen Sie große Datenmengen aus dem Volltext ziehen und anschließend eine große Verknüpfung erstellen.
Sam Saffron
Verstanden. Nehmen Sie eine Stichprobe und führen Sie sie mit aktivierter Statistik-E / A aus, um festzustellen, ob Sie eine Tabelle mit den meisten logischen Lesevorgängen ermitteln können. Auch hier haben wir uns in 2005 gut geschlagen und in 2008 R2 sehr schlecht geschlagen. Wenn Sie nur eine hohe CPU-Auslastung feststellen und viel auf CXPACKET warten müssen, erhöhen Sie zunächst den Kostengrenzwert für Parallelität auf 10, 15 oder sogar 20.
ozamora
Wenn nichts anderes hilft, schalten Sie die Datenbank offline, schalten Sie HT aus und gehen Sie von dort aus. Viel Glück
Ozamora
sp_whoisactive ist ein ziemlich tolles Tool, liebe die Art und Weise, wie die Abfragen anklickbar sind
Sam Saffron
2

Ob HT gut oder schlecht ist, ist schwer zu sagen.

Es hängt wirklich vom Serverlastmuster ab, das auf Erfahrung und Lesen basiert. Das heißt, wenn es die Leistung beeinträchtigt, ist es so schlimm : sonst merkt man es nicht.

Die Theorie, die ich gelesen habe, war, dass die Threads den Cache teilen, was bedeutet, dass unter widrigen Umständen jeder Thread den Cache des anderen Threads überschreiben kann. Wenn Sie nicht viel Parallelität haben oder Ihre Last viele kurze Abfragen enthält, hat dies möglicherweise keine Auswirkungen auf Sie.

Ich habe es mit MAXDOP und Prozessoraffinität versucht (damals in meiner letzten echten DBA-Rolle in SQL Server 2000), konnte aber nie etwas aussagekräftiges finden: sondern nur für meinen Shop zu dieser Zeit.

Als schnellen Test können Sie die Prozessoraffinität so einstellen, dass nur physische Kerne (die niedrigeren Zahlen) verwendet werden, und sehen, was passiert.

Sie verlieren jedoch höchstens die Hälfte Ihrer Kerne. Heutzutage ist das vielleicht egal im Vergleich zu dem, mit dem ich vor ein paar Jahren gespielt habe, als es 2 gegen 4 oder 4 gegen 8 war. Jetzt ist es 8 gegen 16 oder 16 gegen 32.

Edit: Ein Test von Slava Oks

gbn
quelle
Sind die Kerne 0-3 physisch und 4-7 logisch? Funktioniert das so? Wir konnten nicht sagen, und ich konnte kein Werkzeug finden, um mich zu informieren ..
Jeff Atwood
2
@ Jeff Atwood: Ich werde später mehr finden. Ich habe es irgendwo gelesen ... Fürs
Erste
Dieser KB-Artikel bringt es auf den Punkt.
Pause
Obwohl dieser KB-Artikel einige nützliche Informationen enthält, scheint er Jeffs Frage, wie genau die logischen Prozessoren physischen Prozessoren zugeordnet sind, nicht direkt zu beantworten. Mein Gehirn hat sich auf halbem Weg durchgebrannt, aber hoffentlich sollte dieser INTEL-Artikel Ihnen das geben, was Sie brauchen, um das Mapping herauszufinden: software.intel.com/en-us/articles/… siehe auch software.intel.com/en-us/ blogs / 2009/12/21 /… mit den dazugehörigen Links.
BradC
@ Jeff Atwood, @ BradC: Lordy, schwer zu finden. Siehe dies: Es stützt sich auf Empfehlungen von Intel. SQL Server verwendet die zugrunde liegende Windows-Enumeration download.microsoft.com/download/5/7/7/… .
26.10.
2

Leider glaube ich nicht, dass Sie eine definitivere Antwort bekommen werden als "Schalten Sie das Hyperthreading aus und sehen Sie, ob das hilft".

Trotz der hilfreichen Antwort von Jonathan in meinem Original-Thread (den Sie in Ihrer Frage verlinkt haben) konnte ich keine endgültigen Beweise für die Auswirkungen von HT auf die von mir untersuchten Server erhalten. In meinem Fall waren die Server bereits für den Austausch vorgesehen, daher überlassen wir diesen Austausch sozusagen der "Behebung des Problems".

Mein Rat:

Versuchen Sie es mit einer Einstellung für den maximalen Parallelitätsgrad auf Serverebene von 1 . Parallelität in SQL ist ohnehin am nützlichsten für größere, länger laufende Abfragen, und Ihre Last (ich nehme an) besteht ohnehin aus einer enorm hohen Anzahl kleinerer Abfragen. Dies sollte das Warten auf CXPACKET vollständig verhindern. Dies könnte dazu führen, dass bestimmte einzelne Abfragen etwas länger ausgeführt werden, sollte jedoch einen höheren "Durchsatz" aller Abfragen auf dem Server ermöglichen.

Ich habe gute Ergebnisse auf OLTP-Servern erzielt. Für andere Arten von Servern (Berichtsserver, Verarbeitungsserver, Data Warehousing) muss MAXDOP auf jeden Fall höher eingestellt werden.

Und um es klar zu machen, diese Einstellung würde es SQL weiterhin ermöglichen, mehrere Threads für jede einzelne Tabelle in einem JOIN zu verwenden, sodass Sie die Parallelität nicht wirklich vollständig beseitigen.

Zumindest einen Versuch wert, da diese Einstellungsänderung sofort wirksam wird und Sie nicht einmal den SQL-Dienst neu starten müssen: http://msdn.microsoft.com/en-us/library/ms181007.aspx
Dies bedeutet, dass Sie wechseln könnten es sofort zurück, wenn die Dinge zur Hölle gingen.

Das Deaktivieren von Hyperthreading im BIOS würde einen vollständigen Neustart des Servers erfordern, ist also etwas riskanter.

BradC
quelle
0

Im Grunde hatten wir auch eine unerwartet schlechte Leistung nach einem Server-Upgrade. Es stellte sich heraus, dass es Probleme mit dem BIOS und der CPU-Energieeinsparung gab. Die Standardeinstellung auf dem Server (HP) war, die Steuerung der CPU-Geschwindigkeit durch das Betriebssystem zu ignorieren und einen eigenen Algorithmus zu verwenden. Die Umstellung auf die Betriebssystemsteuerung und die Aktualisierung des BIOS führten zu erheblichen Verbesserungen. Es gab einige Versionshinweise (die jetzt nicht gefunden werden können), dass ein BIOS-Fehler aufgetreten ist, der die CPU auf den niedrigsten Leistungsstatus gesperrt hat.

https://serverfault.com/a/196329/6390

Mark Sowul
quelle