Wie kann ich den Windows-Dienst auf X-Kerne beschränken?

699
Martinnj

Ich versuche gerade, herauszufinden, auf welche Art und Weise sich abschreckte, auf welchen Kern (en) ein einzelner Dienst in Windows Server 2008 ausgeführt werden sollte.

Mir ist bewusst, dass es für Prozesse zwei Möglichkeiten gibt, dies zu tun:

  1. Legen Sie die Affinität über den Task-Manager fest, nachdem der Prozess gestartet wurde.
  2. Verwenden Sie "start / AFFINITY 0x1" oder eine ähnliche Bitmaske

Dies scheint jedoch bei Dienstleistungen nicht besonders gut zu funktionieren. Wenn ich versuche, das Exe zu starten, das der Dienst ebenfalls ausgeführt wird (der, der eine Einschränkung erfordert), wird nur eine neue Befehlszeile erzeugt. (cmd.exe)

Weiß hier jemand, wie man einen ähnlichen Trick für Dienstleistungen macht? Es ist nicht wichtig, auf welchem ​​Kern er läuft, er muss nur auf einen Kern beschränkt sein. Und am besten sollte es etwas sein, das automatisiert werden kann, so dass wir uns bei einem Neustart des Servers nicht stören müssen.

4
Sind Sie absolut sicher, dass Sie dies tun müssen? Dies wirkt sich negativ auf die Leistung aus, insbesondere auf den anderen Kernen. (Da sie mit dem Dienst um Speicherbandbreite konkurrieren und Kernel häufiger sperren.) Je weniger Kerne der Dienst für eine gegebene Last ausführt, desto höher ist der Prozentsatz der Zeit, in der er ausgeführt wird, und desto höher ist die Wahrscheinlichkeit, dass er konkurriert mit anderen Programmen für Speicherbandbreite, Kernel-Sperren usw., wodurch sie verlangsamt werden.) David Schwartz vor 11 Jahren 0
Schlimmer noch: Nehmen Sie an, dass eine andere Anwendung auf diesem Core ausgeführt wird, da der Dienst nicht verwendet wird. Dann hat der Dienst mit einer höheren dynamischen Priorität zu tun. Da es nur auf diesem Kern ausgeführt werden kann, muss die andere Anwendung auf einen anderen Kern migriert werden. Aber jetzt sind alle Caches ausgeblasen. Scheduler-Flexibilität ist * extrem * wertvoll. Nehmen Sie es nur weg, wenn Sie keine andere Wahl haben. David Schwartz vor 11 Jahren 0
Ich bin mir der negativen Auswirkungen auf die Performance bewusst. Der fragliche Dienst ist jedoch Teil eines Überwachungsprogramms, und das Wechseln zwischen Kernen verursacht ein Problem mit der Überwachungssoftware. Daher werden die Ergebnisse unvorhersehbar und manchmal direkt falsch. Wir haben es untersucht und herausgefunden, dass die Beschränkung des Programms auf einen Kern dieses Problem beseitigt. Das ist nicht optimal, aber ich fürchte, das haben wir bekommen. Martinnj vor 11 Jahren 0

0 Antworten auf die Frage