Erzwinge, dass Windows alle Kerne verwendet

2188
Dániel Somogyi

Ich habe Win8.1 und eine Intel-CPU mit 2 (4) (logischen) Kernen.

ABER: Windows verwendet nur einen Kern. Der Taskmanager zeigt die 1. CPU dauerhaft bei 100% an; Alle anderen sind meistens untätig.

Nach mehreren Stunden Suche fand ich nur heraus, dass Windows die Affinität jedes Prozesses auf CPU0 setzt. Im Taskmanager konnte ich die Affinität eines Prozesses auf eine andere CPU (oder auf alle) zurücksetzen. Dies ist jedoch auch auf meinem anderen Computer nicht erforderlich.

Irgendwelche anderen Ideen als msconfig (habe das oft im Internet gehört, aber es löst nicht mein Problem. Windows kennt die anderen CPUs, sie werden einfach nicht verwendet)?

2
sagen Sie, dass standardmäßig für jeden Prozess die Affinität auf core0 festgelegt ist? Der Standard sollte eigentlich alle Kerne sein ... Blaine vor 7 Jahren 1
Ich kann aus der Beobachtung bestätigen, dass Windows die Affinität aller Prozesse nicht standardmäßig auf Core 0 setzt. Alle Kerne werden verwendet. Wenn dies nicht der Fall ist, stimmt etwas nicht. Außer den Startoptionen kenne ich keine Option, die dies einschränken würde. LMiller7 vor 7 Jahren 2
@Blaine ja, das ist was ich meine. Ich gehe zum Taskmanager und überprüfe die Affinität eines Prozesses. Nur CPU0 wird geprüft. Ich weiß auch, dass das nicht ok ist, das sollte nicht normal sein, aber es ist irgendwie. Ich möchte herausfinden, was falsch ist und vielleicht beheben, ohne eine komplette Neuinstallation durchzuführen ... Dániel Somogyi vor 7 Jahren 0

2 Antworten auf die Frage

1
LotPings

Bitte lesen Sie diesen Link Psychisches Debuggen

Dieses Powershell-Skript (Runas a Administrator) kann dabei helfen, herauszufinden, für welche Prozesse die Affinität festgelegt ist.

get-process | Select Name,ProcessorAffinity 

Dieses Skript kann die Maske zumindest zeitweise auf alle verfügbaren (1 + 2 + 4 + 8) Prozessoren = 15 für einen Zwei-Kern-Prozessor mit HT (ein Vier-Kern mit Hyperthreading = 255) setzen.

get-process | Where{ $_.ProcessorAffinity -eq 1} | Foreach{ $_.ProcessorAffinity = 15 } 
Danke für den Link. Lesen scheint mein Problem genau zu zeigen (aber die Links auf der Seite funktionieren nicht). Ich habe versucht, die Affinität des Explorers auf alle CPUs einzustellen (über Taskmgr), aber Windows speichert sie nicht (aktivieren Sie alle Kontrollkästchen -> klicken Sie auf OK -> Überprüfen Sie die Affinität: Noch immer nur CPU0). Ich werde später Powershell versuchen ... Dániel Somogyi vor 7 Jahren 0
Entschuldigung für die Verzögerung, ich habe jetzt Powershell ausprobiert. Es funktioniert nicht vollständig; Wählen Sie Name aus, ProcessorAffinity gibt genau das aus, was erwartet wurde. Alles ist auf 1 gesetzt. Ausführen des Skripts UND das Skript "Select as one" zeigt jeden Prozess auf 15, aber wenn ich die Ausführung erneut ausführen, werden die meisten Prozesse auf 1 zurückgesetzt. Ausnahmen sind einige svchost und DptfParticipantProcessorService ... Zum Link: leider Die ausgehenden Links auf der Site funktionieren nicht ... Dániel Somogyi vor 7 Jahren 0
Sorry nochmal, ich habe die Leitung durcheinander gebracht; Der zweite Prozess, der bei 15 bleibt, ist dllhost, nicht der DptfParticipantProcessorService Dániel Somogyi vor 7 Jahren 0
1
Dániel Somogyi

Ich habe es verstanden; Ein Teil der vorinstallierten Intel-Software hat die CPU gedrosselt. Das Aufrufen von Programmen und Funktionen sowie das Löschen der Intel Thermal-Plattform wurden behoben, und ein Neustart wurde behoben.