Prioritet i Windows Opgaveplanlægger

Enhver, der kører job i Windows Opgavestyring, vil før eller siden støde på uforklarlige forskelle i kørselstiden. Et PHP-script, der kører på 5 minutter på kommandolinjen, tager pludselig 20 minutter, når det udføres via Windows Opgavestyring. Samme bruger, samme tilladelser, samme kode – fire gange så lang udførelsestid. Hvad foregik der?


Efter timevis af fejlfinding, Process Monitor-sessioner og utallige konfigurationssammenligninger var løsningen skræmmende enkel: Windows Opgavestyring indstiller som standard en lavere procesprioritet. Standardværdien for opgaver i Opgavestyring er 7 (Under normal), ikke 4-6 (Normal) som forventet. Denne tilsyneladende lille forskel kan føre til massiv forringelse af ydeevnen i I/O-intensive operationer.

Windows-prioritetsniveauerne er i detaljer:

VærdiPrioritetBeskrivelse
0RealtidHøjeste prioritet (forsigtig!)
1HøjHøj prioritet
2-3Over normalOm Normal
4-6NormalStandard for interaktive processer
7Under normalenSTANDARD i Opgaveplanlægger
8-9Under normalenEndnu lavere
10LedigLaveste prioritet

Problemet med prioritet i opgaveplanlægning er flerlags: Når du eksporterer en opgave og ser på XML-filen, vil du ofte ingen Prioritetsindstilling. Windows vil derefter lydløst bruge standardværdien 7. Den grafiske brugergrænseflade viser denne værdi under eksport, men den gemmes ikke eksplicit i opgaven. Den lavere prioritet resulterer ikke kun i mindre CPU-tid, men også:

  • Begrænsede disk I/O-operationer
  • Lavere netværksprioritet
  • Dårlig caching af filsystemet
  • Forsinkelser i databaseadgang

Selv hvis du bruger den samme bruger og aktiverer "Kør med højeste rettigheder", kører opgaven i et andet Windows-stations-/skrivebordsmiljø med andre prioriteter. For at identificere problemet kan du bruge PowerShell til at liste alle opgaver med deres faktiske prioriteter.:

38b7fa6c77dc344401485cd338ea4128

Næsten alle mine opgaver blev prioriteret 7. Vi korrigerer nu specifikt prioriteten for flere opgaver på én gang:

38b7fa6c77dc344401485cd338ea4128

Efter at have indstillet prioriteten til 4 (Normalt) kørte mit PHP-script igen inden for de forventede 300 sekunder. Hvis du har konfigureret opgaver med en bestemt brugerkonto, kan du også nemt angive dette i linje 10 som følger.:

38b7fa6c77dc344401485cd338ea4128

Tilbage