Priorität in Windows ist alles
Der ein oder andere kennt das Szenario bei einem Windows System.
Wir haben mehrere geplante Tasks auf einem Server laufen, und wir wundern uns, warum die Laufzeiten recht lange sind.
Auch wir hatten neulich wieder das Problem, das ein Robocopy Job zum Spiegeln eines Verzeichnisses mehrere Tage benötigte, um seine Aufgabe fertig abzuschließen. Hier fehlte einfach die Möglichkeit die geplante Aufgaben zu priorisieren.
Der Robocopy Job wurde mittels Task Planer(Aufgabenplanung) an einem Windows Server 2008 R2 eingerichtet. Gespiegelt wurde von einem eingebundenen NAS Storage zu einem anderen.
Zusätzlich lief im Hintergrund noch eine Indizierungssoftware eines Drittherstellers.
Der Robocopy Job sollte aufgrund der geänderten Datenmenge eigentlich nicht lange dauern.
Eine genauere Überprüfung ergab, dass der Robocopy Task im Taskmanager als niedrig Priorisiert war.
Windows scheint dies Standardmäßig bei geplanten Tasks zu hinterlegen.
Mir war dies nicht wirklich bewusst.
Aber wie ändern wir die Priorität eines geplanten Tasks nun?
In der GUI war hierzu keine Einstellmöglichkeit gegeben.
Geplante Aufgaben Priorisieren – So geht es!
Man Exportiert den geplanten Job und öffnet diese Export-datei mit einem Editor.
In dieser XML Datei findet man nun den Priority Key Eintrag mit dem Wert 7.
Ein Blick auf folgende Tabelle ergibt, dass der Task immer unterhalb der normalen Priorität gestartet wird.
Task priority | Priority Class | Priority Level |
---|---|---|
0 | REALTIME_PRIORITY_CLASS | THREAD_PRIORITY_TIME_CRITICAL |
1 | HIGH_PRIORITY_CLASS | THREAD_PRIORITY_HIGHEST |
2 | ABOVE_NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_ABOVE_NORMAL |
3 | ABOVE_NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_ABOVE_NORMAL |
4 | NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_NORMAL |
5 | NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_NORMAL |
6 | NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_NORMAL |
7 | BELOW_NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_BELOW_NORMAL |
8 | BELOW_NORMAL_PRIORITY_CLASS | THREAD_PRIORITY_BELOW_NORMAL |
9 | IDLE_PRIORITY_CLASS | THREAD_PRIORITY_LOWEST |
10 | IDLE_PRIORITY_CLASS | THREAD_PRIORITY_IDLE |
Quelle: Microsoft MSDN
Damit der Task nun mit normaler oder höherer Priorität startet, einfach den Wert in der XML Datei ändern.
Danach die XML in der Aufgabenplanung wieder Importieren.
Eine Messung hat bei uns ergeben, dass sich unser Robocopy Job, der zuvor zwischen 3 und 4 Tagen lief, nun innerhalb 2 Stunden fertig war.
Warum Microsoft es bis heute nicht geschafft hat, einen einfachen Schalter in der GUI zu hinterlegen, um geplante Aufgaben zu priorisieren, ist mir ein Rätsel.
Schreibe einen Kommentar