Anzeige

Am Puls von Microsoft

Anzeige

Windows Anwendung permanent an Kerne binden

seirex1234

bekommt Übersicht
Hallo,
hatte schonmal was gepostet war aber irgendwie weg:


ich hoste auf meinem Windows PC einen CSGO Gameserver. Ich habe einen I7-4770 (4kerne / 8Threads)

Wenn ich den csgo server starte, benutzt dieser alle Kerne. Er laggt extrem wenn wir auf ihm Spielen.
Wenn ich im Taskmanager die Kerne bearbeite (Zugehörigkeit) und nur auf einem Kern laufen lasse funktioniert alle problemlos.
Wenn ich die Anwendung restarte sind jedoch die einstellungen wieder zurückgesetzt und ich muss es wieder erneut zuweisen.

Meine Frage:

Wie kann ich einstellen, dass eine bestimmte Anwendung immer nur einen Kern benutzt (oder ich einstellen kann welchen und wie viele Kerne sie benutzen darf) und diese Einstellungen permanent erhalten bleiben. Auch nach Anwendungs oder PC restart.
 
Anzeige
Öffne die PowerShell ISE und füge folgendes ein:

###
<#
$Core1 = 1
$Core2 = 2
$Core3 = 4
$Core4 = 8
$Core5 = 16
$Core6 = 32
$Core7 = 64
$Core8 = 128
#>
$ProcAffinity = "64"

$ApplicationPath = "DEINE EXE" #z.B. C:\temp\test.exe
$ApplicationName = $ApplicationPath -creplace '(?s)^.*\\', ''
Start-Process $ApplicationPath
do{
Write-Host "Warte auf Prozess..." -ForegroundColor Cyan -BackgroundColor Black
$WaitForProcess = Get-Process $ApplicationName -ErrorAction SilentlyContinue
sleep 1
}until(!$WaitForProcess -eq $false)
# Set Affinity
$WaitForProcess.ProcessorAffinity=$ProcAffinity
#sleep 5
###

Nun speichere das Ganze irgendwo ab.
Nachdem du das erledigt hast, wechselst du in das Verzeichnis der gespeicherten *.ps1 Datei und klickst mit einem Rechtsklick drauf und wählst "Mit PowerShell ausführen" aus.

Hinweis: Erscheint nur kurz das Fenster, gibt es zwei mögliche Fehlerquellen:
1. ist eventuell deine Ausführungspolicy für Skripte zu streng. In diesem Fall die PowerShell als Administrator öffnen und "Set-ExecutionPolicy RemoteSigned" eingeben. Das sollte für dein Skript zu reichen.
2. Du musst das Skript als Administrator ausführen. Entweder baust du eine Verknüpfung oder du führst immer erst die PowerShell als Admin aus und lädst das Skript dort rein.

Noch eine kleine Erklärung, wie du das Skript konfigurieren musst:
möchtest du nur einen Core deiner CPU verwenden, brauchst du nur eine Zahl eintragen (z.B. die "4", wenn nur der dritte Core verwendet werden soll). Möchtest du mehrere Cores kombinieren, musst du die Zahlen addieren (z.B. Core 2, Core 6 und Core 8 ergeben 162).


Viele Grüße
Nussi
 
Hallo , wenn man's mit den Befehlszeilen nicht so hat :
nimmt man EasyToolz oder Prozesslasso ,
ist zwar beides nicht perfekt .......ausprobieren.
 
Anzeige
Oben