tunngle

Ein bestimmter Prozess ab einer bestimmten CPU Last automatisiert terminieren?

Hallo zusammen,

ich würde gerne über die Aufgabenplanung bestimmte Prozesse ab einer bestimmten CPU Last automatisiert terminieren.
In meinem Fall wird der Prozess dann eh neu gestartet und alles ist gut!

Hat jemand eine Idee wie ich das am besten realisiere?
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 574123

Url: https://administrator.de/forum/ein-bestimmter-prozess-ab-einer-bestimmten-cpu-last-automatisiert-terminieren-574123.html

Ausgedruckt am: 04.07.2025 um 18:07 Uhr

erikro
erikro 22.05.2020 um 11:33:29 Uhr
Goto Top
Moin,

so:

# Skript zum Abschießen eines Prozesses, der zu viel CPU-Zeit verbraucht

PARAM (

    $process_name,
    $cpu_max = 80, # Angabe in Prozent
    $log = "c:\users\admin\perf.log"  

)

$samples = $(Get-Counter -counter "\Prozess($process_name)\Prozessorzeit (%)" -sampleinterval 1 -maxsamples 1 -erroraction SilentlyContinue).countersamples  

foreach($sample in $samples) {

    if($sample.cookedvalue/$(Get-WmiObject -class win32_processor).numberofcores -gt $cpu_max) {

        Stop-Process -name $process_name -force
        out-file $log -Append -encoding utf8 -inputobject "Der Prozess $process_name wurde um $(get-Date) gestoppt."  
        exit 0

    }
}
out-file $log -Append -encoding utf8 -InputObject "Der Prozess $process_name wurde um $(get-date) nicht gestoppt."  

Das lasse ich auf einigen Rechnern, auf denen so ein Prozess gerne mal die CPU auslastet, laufen. Entweder über die Aufgabenplanung alle fünf Minuten oder als Endlosschleife mit frei wählbarem sleep. Es muss aber auf jeden Fall im Adminkontext laufen.

hth

Erik
Tunngle
Tunngle 22.05.2020 um 11:46:35 Uhr
Goto Top
Hallo Erik,

vielen Dank für deine Antwort.

Werde ich ausprobieren face-smile!

Mike
erikro
erikro 22.05.2020 um 11:48:34 Uhr
Goto Top
Gerne. Aber Vorsicht! Teste das gut mit Deinem System. Der Befehl fährt den Prozess runter, egal was gerade passiert. Sollte es ein DB-Server o. ä. sein, könnte das die DB zerschießen. face-wink