Festlegen der Affinität in einem Skript / einer Stapeldatei
468
Harry Rogers
Das Festlegen der Affinität für einen bestimmten Prozess mit den folgenden Schritten funktioniert gut
PowerShell "get-process Notepad | %% { $_.ProcessorAffinity=1 }"
Ich möchte die Prozessormaske für jede Instanz eines bestimmten Prozesses, auf die das Skript trifft, unterschiedlich einstellen. Das heißt, legen Sie die Affinität von Instanzen eines bestimmten Prozesses in einem Round-Robin-Stil fest. Jeder Instanz sollte der nächste verfügbare Kern zugewiesen werden
instance 1 -> 00000001 (first core) instance 2 -> 00000010 (second core) instance 3 -> 00000100 etc.. instance 8 -> 10000000 (8th core) instance 9 -> 00000001 (back to the first core again) instance 10 -> 00000010 (second core again)
und so weiter.
In der Regel gibt es zu jeder Zeit 10 bis 20 Instanzen des Prozesses, und das Skript wird alle paar Minuten nach einem Zeitplan ausgeführt, um die Last gleichmäßig auf alle Kerne zu verteilen.
Vielen Dank im Voraus für Ihre Anregungen.
Bei Ihrem Format ist es wahrscheinlich, dass [Affinität des Prozesses mit Windows-Skript in StackOverflow ändern] (https://stackoverflow.com/questions/19187241/change-affinity-of-process-with-windows-script) damit zusammenhängt. Sie wissen bereits, was zu tun ist und welche Befehle Sie benötigen. Ich bin mir also nicht wirklich sicher, was dein Problem ist? Verwenden Sie eine Variable und sind Sie fertig?
Seth vor 6 Jahren
1
Entschuldigung, wenn ich nicht klar war. Es gibt eine Reihe von Instanzen des Prozesses I, für die die Affinität festgelegt werden soll. Mein Wunsch ist es, diese auf alle verfügbaren Kerne zu verteilen, damit jeder einen Kern erhält. Ich habe nach der Syntax / Logik eines Skripts gesucht, das mit 'n' Instanzen zurechtkommt - dh die Prozessormaske für jede gefundene Instanz anpassen. Vielen Dank
Harry Rogers vor 6 Jahren
0
Nun, meine Erwähnung trifft noch zu Verwenden Sie eine Variable zum Zählen. Ihr Code kümmert sich bereits um N Instanzen. Das einzige, was Sie tun müssen, ist die Verwendung einer Variablen zum Zählen und möglicherweise ein Modulo für den Fall, dass Sie mehr als Kerne-Instanzen haben (das Modul wäre also die Anzahl der Kerne). Sie müssen diese Variable lediglich mit jeder Iteration Ihrer Schleife erhöhen und sie anstelle eines statischen Werts verwenden.
Seth vor 6 Jahren
0
Danke, dass du dir das nochmal angeschaut hast, Seth. Ich denke, meine Frage bezieht sich mehr auf das Schreiben eines Skripts als a). Zählt Instanzen des gegebenen Prozesses und b) erreicht die Modulo-Arithmetik in einer Schleife. Ich habe einige andere Einträge gefunden, die mich in die richtige Richtung weisen und ich werde mehr über die Powershell-Syntax lesen
Harry Rogers vor 6 Jahren
0
0 Antworten auf die Frage
Verwandte Probleme
-
3
Wie kann ich eine Verzeichnisstruktur "invertieren"?
-
1
Pausieren Sie alle Aufgaben außer x CPU-intensiven Aufgaben
-
7
Starten Sie den Synergy-Client beim Booten in Mac OS X
-
4
Wie synchronisieren Sie GreaseMonkey-Skripts zwischen Computern?
-
1
Kann ich ein Skript schreiben, das Benutzer automatisch wechselt?
-
6
Guter PowerShell-Leitfaden, der durch fortgeschrittene Verwendung Einstieg leistet
-
3
FTP "PUT" schlägt von der virtuellen Maschine aus, aber nicht vom Host-PC aus: 504 Der Befehl ist fü...
-
1
ksh entspricht perl $! Fehlerursache
-
2
Subskriptionsfehler außerhalb des Bereichs in VBScript-Skript
-
5
crontab, um osx aus dem schlaf zu erwecken