Jump to content

CPU Affinity von Diensten mit Local System Account setzen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo allerseits,

 

ich würde gerne wissen, wie ich die CPU Affinity eines Dienstes festlegen kann, der unter dem Local System Account läuft. Noch nicht einmal als Administrator habe ich die Berechtigung, solche Prozesse zu beeinflussen (im Task Manager oder mit anderen Mitteln). Der Dienst muss aber unter Local System Account laufen, sonst funktioniert er nicht.

 

Das steinalte Tool imagecfg.exe aus dem Windows 2000 Resource Kit ist zu alt und funktioniert nicht mehr.

 

Ich wäre dankbar, wenn dieser Thread nicht dazu missbraucht werden würde, die Sinnhaftigkeit meines Wunsches zu diskutieren und ihn damit off-topic zu führen, sondern wenn nur Lösungsvorschläge kommen würden.

 

Vielen Dank!

Link zu diesem Kommentar

Systemprozesse sollten nicht beeinflusst werden. Die werden vom Hersteller (Microsoft ?) so programmiert, dass sie optimal laufen.

Ich persönlich habe die Option mal gesehen, habe  aber nie damit rumgespielt. Performance-Probleme haben i.d.R. andere Ursachen.

 

Da Du nicht  über Sinn und die Ursache dieser Experimente diskutieren willst, gibt es hier auch nicht mehr zu lesen.

Link zu diesem Kommentar

Was willst Du damit sagen? Dass Du es für Deine Verantwortung hältst, mich vor meiner eigenen Dummheit zu schützen und deswegen die Antwort nicht verrätst, obwohl Du zumindest eine Idee hast, wo sie zu finden sein könnte? Arroganter geht's nimmer.

 

Bemerkung am Rande: Es geht nicht um Performance. Auf Details gehe ich aber bewusst nicht ein, sonst wird hier nur darüber diskutiert und nicht über die Antwort auf meine Frage. Wenn ich eine Antwort habe, die funktioniert, können wir gerne auch über das andere reden.

bearbeitet von Archmage2
Link zu diesem Kommentar

Wie dein Auftreten hier wirkt, hat Daniel in meinen Augen recht gut beschrieben ...

 

aber lassen wir menschliche Schwächen außen vor, wer ist schon "einfach" ..

 

http://www.techrepublic.com/blog/windows-and-office/change-the-processor-affinity-setting-in-windows-7-to-gain-a-performance-edge/

zu jedem Dienst gehört natürlich ein Prozess ...

Link zu diesem Kommentar

@ Daniel & neuenfeldt: Wenn ihr eine technische Frage in einem Forum posten würdet, und dann käme jemand und würde euch antworten: "Das solltest Du gar nicht fragen, das macht man nämlich nicht so, und deswegen verrate ich Dir auch die Antwort nicht, obwohl ich Dir eigentlich helfen könnte" - wir würdet ihr euch da fühlen? Würdet ihr da sagen, korrekte Antwort, recht hat der Mann?

 

 

http://www.techrepublic.com/blog/windows-and-office/change-the-processor-affinity-setting-in-windows-7-to-gain-a-performance-edge/
zu jedem Dienst gehört natürlich ein Prozess ... 

 

 

Vielen Dank, aber das trifft das Problem leider nicht ganz. Wie man normalerweise die Affinität eines Prozesses ändert, weiß ich. Wenn es sich aber um einen Prozess handelt, der unter dem Account "Local Service" läuft, dann hat noch nicht mal ein Administratoraccount die Berechtigung, an diesem Prozess irgend etwas zu machen. Dementsprechend weist z.B. der Task Manager den Versuch als unautorisiert zurück.

 

Ich bin der Meinung, vor längerer Zeit mal eine Anleitung gelesen zu haben, wie man irgendwie durch Anlage einer Sicherheitspolicy Administratorkonten ermächtigen kann, auf Prozesse des Local Service zuzugreifen. Ich finde die Stelle aber nicht wieder.

bearbeitet von Archmage2
Link zu diesem Kommentar

Nein. Ich sage nur: Wie man in den Wald hineinruft, so schallt es heraus. Die Art und Weise, wie Du die Frage stellst, bestimmt oft die Motivation, in der eigenen Freizeit Dir zu helfen. Wenn Du meinst, Forderungen stellen zu müssen oder anderen Forenteilnehmern vorschreiben zu wollen, was sie tun oder lassen sollen, dann motivierst Du nicht gerade, Dir zu helfen.

 

Ich zum Beispiel möchte gern verstehen, warum jemand etwas bestimmtes machen möchte. Welches Problem erhofft er sich von der Lösung zu lösen? Oft hilft das Problem des Lösungsansatzes des Fragenden gar nicht bei der Lösung des Problems.

 

Da in Foren die Antworten jahrelang öffentlich einsehbar sind, trägt man eine gewisse Verantwortung für die Vorschläge, die man macht. Daher ist der Kontext genauso wichtig wie die Lösung selbst.

 

Denk dran: Am Ende des Tages ist das *Dein* Problem, das *Du* gelöst haben willst.

Link zu diesem Kommentar

Richtig, und ich wäre dankbar, wenn jemand tatsächlich versuchen würde, mir dabei zu helfen... Auf der einen Seite hast Du recht. Auf der anderen Seite habe ich aber die Erfahrung gemacht, dass wenn ich zu viel Hintergrundinformation preisgebe, die Gefahr extrem groß ist, dass nur noch darüber diskutiert wird, ich mich nur noch rechtfertigen muss, weshalb ich die Frage stelle, die ich stelle, und irgendwann der Thread so viele inhaltsleere Antworten hat, dass weitere Forenteilnehmer sich angesichts des bereits hohen Antwortcounts gar nicht mehr die Mühe machen hineinzuschauen.

 

Leider ist dieser Thread hier auf dem besten Wege, das gleiche Schicksal zu erleiden... Aber gut, spielen wir das Spiel nach Deinen Regeln und schauen wir, ob es so endet wie von mir befürchtet.

 

Konkret geht es mir um den Prozess audiodg.exe, bei dem es sich um den Dienst "Windows Audio Endpoint Builder" (jedenfalls bei einem englischsprachigen Windows 7) handelt. Ich betreibe häufiger Anwendungen mit Soundausgabe, die von ihrer Programmierung her nicht alle 4 Kerne meiner Haswell-CPU auslasten können. Nun hat aber Windows in solchen Fällen die unselige Angewohnheit, solche Anwendungen in Windeseile von Kern zu Kern rotieren zu lassen in dem verzweifelten Versuch, alle Kerne gleichmäßig auszulasten. Klappt natürlich nicht, da die Anwendung nicht hinreichend parallelisierend programmiert ist. Also nimmt sie die gesamte Rechenlast jeweils auf den nächsten Kern mit usw. In der Konsequenz wird verhindert, dass einzelnen Kerne der CPU in die tiefen Ruhezustände wechseln können, wo sie so gut wie keinen Strom mehr verbrauchen bzw. ganz abgeschaltet werden (Stichwort Intel PowerGate-Technologie). Meines Wissen hat auch Microsoft - nach Jahren - diese schon zu NT 4.0-Zeiten existierende Schwäche eingestanden und, wenn ich das richtig mitgekriegt habe, bei Windows 8.1 eine pfiffigere Kernbelegungsstrategie implementiert.

 

Unter Windows 7 kann ich diesen Effekt weitgehend verhindern, indem ich diese Anwendungen von der Affinität her auf nur so viele Kerne beschränke, wie sie tatsächlich nutzen können.

 

Daneben gibt es aber auch noch jenen zu Windows gehörenden Dienst audiodg.exe. Als hardwarenaher Dienst muss er unter dem Local Service-Account laufen, sonst funktioniert er nicht richtig. Dabei erzeugt er CPU-Auslastungen im unteren zweistelligen Bereich. Das ist zu wenig, um einen Kern ordentlich auszulasten, aber genug, um den Rotationsmechanismus zu triggern und damit die wirksamsten CPU-Schlafzustände zu verhindern.

 

Die Rechenlast von audiodg.exe ist meines Erachtens nicht so groß, dass ich wahrnehmbare Auswirkungen hätte, wenn ich den Dienst mit auf die Kerne zwinge, auf die ich die Hauptanwendungen beschränke. Dann würden die übrigen Kerne praktisch völlig brachliegen (da alles übrige, was zu Windows gehört, normalerweise schläft bzw. Kernlasten unter 1% erzeugt). Windows würde dann für diese Kerne die hohen Schlafzustände nutzen. Ich hätte ohne wahrnehmbare Performancenachteile einen verringerten Stromverbrauch und weniger Wärmeentwicklung. (Ganz nebenbei gibt es doch auch noch einen kleinen Performancegewinn, wenn nicht rotiert wird, weil nämlich die Chance auf Cache Hits steigt, wenn die Anwendung auf demselben Kern bleibt.)

 

Dazu müsste es mir aber gelingen, die Prozessoraffinität von audiodg.exe einzuschränken. Dies ist ein Problem, weil audiodg.exe unter Local Service-Account läuft und vom Administratoraccount nicht verändert werden darf.

Link zu diesem Kommentar

Ich kann Dir nicht versprechen, dass Du Dein Ziel, die beiden anderen Kerne tiefer schlafen zu legen, erreichst, aber um die Affinität des Audio-Dienstes fest zulegen, musst Du den Protected User Mode Audio (PUMA) aufheben, in dem Du in der Registry unter HKLM\Software\Microsoft\Windows\CurrentVersion\Audio den DWORD 'DisableProtectedAudioDG' hinzufügst und auf 1 setzt. Danach den Windows-Audio-Dienst stoppen und starten (net stop audiosrv && net start audiosrv). Jetzt kannst Du den Taskmanager mit Adminrechten starten und die Affinität festlegen.

 

Nachteil: Du kannst keine geschützten Videos und Audio mehr wiedergeben.

 

Berichte mal, ob sich das bei Dir lohnt und um wieviel Deine Temperatur sinkt und die Akkulaufzeit verlängert wird.

 

Dafür würde ich eher mal powercfg.exe /energy ausführen - http://blogs.technet.com/b/dmelanchthon/archive/2009/01/08/energieeffizienz-in-windows-7.aspx Die Schlafzustände werden zum Beispiel von der System Timer Resolution viel stärker beeinflusst und wenn Du z.B. Google Chrome oder Snagit nutzt, dann sorgen die dafür, dass die CPU nicht tiefer schlafen kann - siehe den Abschnitt Stromverbrauch unter http://blogs.technet.com/b/dmelanchthon/archive/2011/02/10/internet-explorer-9-release-candidate-rc.aspx

 

Have Fun!

Daniel

 

P.S.: Schau Dir mal den ersten Treffer unter http://lmgtfy.com/?q=audiodg.exe+affinity an

bearbeitet von Daniel -MSFT-
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...