Beschränken Sie den Benutzer auf einen CPU-Kern in Windows 7

1

Ich lasse meine Familienmitglieder meinen PC über RDP verwenden, um ihre Flash-basierten Spiele zu spielen, da sich ihre Laptops überhitzen, wenn sie sie direkt verwenden. Ich habe es so eingestellt, dass ich den PC gleichzeitig mit ihnen benutzen kann. Der PC hat eine Quad-Core-CPU und ich möchte dem über RDP angemeldeten Benutzer einen dieser Kerne zuweisen können, damit die anderen 3 Kerne in Ruhe gelassen werden. Ist das möglich?

Sie melden sich zu diesem Zweck über ein bestimmtes Benutzerkonto an.

Danke für jeden Rat!

Dean Ward
quelle
Vielleicht könnten dir PsTools von Mark Russinovich unter technet.microsoft.com/en-us/sysinternals/bb896649 helfen;)
ATorras

Antworten:

2

Mit der Windows-Funktion SetThreadAffinityMask können Sie die Prozessor- / Core-Affinität eines Threads festlegen. Mit dieser Funktion können Sie einen Thread anweisen / zwingen, einen bestimmten Kern zu verwenden.

Gehen Sie wie folgt vor, um Ihr Problem zu lösen:

  • Schreiben Sie eine Anwendung, die alle Prozesse durchläuft und den Benutzer überprüft
  • Wenn der Benutzer des Prozesses dem Benutzernamen entspricht, der als Argument für die Anwendung angegeben wurde:
    • Schleife über alle Fäden
    • Setze die Affinität auf den ersten Kern

Sie können dieser Anwendung ein ansprechendes Fenster-Front-End geben und sie automatisch ausführen, sobald Sie sich bei Ihrem Computer anmelden.

Sie können diese Anwendung auch zu einem Windows-Dienst machen und automatisch ausführen lassen, wenn der Computer startet.

Patrick
quelle
Klingt nach einer großartigen Lösung und einem unterhaltsamen Projekt! Ich werde es versuchen und die Software freigeben, wenn sie fertig ist. Vielen Dank :)
Dean Ward
0

Dies ist keine einfache Lösung, aber die beste Möglichkeit, den Computer mithilfe der VM-Software (Virtual Machine) vollständig in zwei (oder mehr) Computer aufzuteilen. Hierdurch wird Ihr Problem möglicherweise auch in Zukunft behoben (Junk, Viren ...).

Bei installierter VM können Sie auswählen, wie viel CPU-Verarbeitungszeit jeder Computer erhalten soll. Diese Auswahl funktioniert auch für andere Ressourcen wie Speicher, Speicherplatz, Netzwerkbandbreite ...

Stellen Sie in diesem Fall sicher, dass Ihre CPU Virtualisierung unterstützt.

Gilad
quelle
Ich habe versucht, die VM-Route entlang zu fahren, aber festgestellt, dass sie viel mehr Aufwand verursacht als die Art und Weise, wie ich sie jetzt mache.
0

Hier gibt es eine Reihe von Dingen. Die einfachste Lösung wäre, es auf dem Laptop zum Laufen zu bringen, nicht wahr?

  • Vielleicht gibt es ein Problem mit der Laptop-Hardware, dem Lüfter?
  • Sie können versuchen, den Laptop zu übertakten, um die Betriebstemperatur zu senken.

Wenn Sie sich für die RDP-Idee entscheiden, können Sie Folgendes versuchen:

  • Reduzieren der Prozesspriorität für RDP im Task-Manager. (Ich habe kein Windows 7, daher bin ich mir nicht sicher, ob dies als separater Prozess ausgeführt wird.) Ich denke, dies sollte einen ähnlichen Effekt haben wie das, wonach Sie suchen. Wenn rdp als Dienst ausgeführt wird, gibt es wahrscheinlich eine Möglichkeit, seine Priorität zu verringern, aber es ist nicht so einfach, wie ich es mir vorstellen kann.
  • Sie können auch versuchen, die Prozessaffinität im Task-Manager zu ändern. Wenn Sie dies verwenden, können Sie RDP genau einem Kern zuweisen. Dies hängt jedoch auch davon ab, ob RDP ein Dienst ist, wie einfach dies wäre.

quelle
Der fragliche Laptop ist alt und unterlastet. Es läuft bereits sehr langsam, so dass eine Untertaktung wahrscheinlich nicht in Frage kommt. Ich werde versuchen, die Prozesse des RDP-Dienstes zu finden und die Affinität dafür zu setzen, danke für diesen Vorschlag!
Ich habe den Prozess gefunden, der den Service hostet, und habe ihn auf einen einzelnen Kern festgelegt, aber der Prozess des Spiels lief immer noch auf anderen Kernen. Sieht so aus, als wäre das kein Anfang! Danke trotzdem.