Приоритет в планировщике задач Windows

Любой, кто запускает задания в планировщике заданий Windows, рано или поздно сталкивается с необъяснимыми различиями во времени выполнения. PHP-скрипт, который в командной строке выполняется за 5 минут, при запуске через планировщик заданий Windows внезапно занимает 20 минут. Тот же пользователь, те же права доступа, тот же код — время выполнения в четыре раза больше. Что же происходило?


После нескольких часов отладки, сеансов мониторинга процессов и бесчисленных сравнений конфигураций решение оказалось пугающе простым: планировщик заданий Windows устанавливает более низкий приоритет процесса по умолчанию. Значение по умолчанию для задач в планировщике заданий: 7 (ниже нормы), не 4-6 (Нормально) Как и ожидалось. Эта, казалось бы, небольшая разница может привести к значительному снижению производительности при выполнении операций с интенсивным вводом-выводом.

Подробные уровни приоритета Windows ::

ЦенитьПриоритетОписание
0В реальном времениНаивысший приоритет (внимание!)
1ВысокийВысокий приоритет
2-3Выше нормыО нормальном
4-6НормальныйСтандарт для интерактивных процессов
7Ниже нормыПО УМОЛЧАНИЮ в планировщике задач
8-9Ниже нормыЕще ниже
10ПраздныйСамый низкий приоритет

Проблема с приоритетом при планировании задач имеет многоуровневую структуру: когда вы экспортируете задачу и просматриваете XML, вы часто видите, нет Установка приоритета. После этого Windows будет автоматически использовать значение по умолчанию. 7. Графический интерфейс отображает это значение во время экспорта, но оно не сохраняется явно в задаче. Низкий приоритет не только приводит к уменьшению процессорного времени, но и:

  • Регулируемые дисковые операции ввода-вывода
  • Более низкий сетевой приоритет
  • Плохое кэширование файловой системы
  • Задержки в доступе к базе данных

Даже если вы используете того же пользователя и включите «Запустить с наивысшими привилегиями», задача выполняется в другой среде Windows Station/Desktop с другими приоритетами. Чтобы определить проблему, вы можете использовать PowerShell для составления списка всех задач с указанием их фактических приоритетов.:

38b7fa6c77dc344401485cd338ea4128

Почти все мои задачи выполнялись с приоритетом 7. Теперь мы целенаправленно корректируем приоритет нескольких задач одновременно.:

38b7fa6c77dc344401485cd338ea4128

После установки приоритета 4 (Обычно) мой PHP-скрипт снова запустился через ожидаемые 300 секунд. Если вы настроили задачи для определённой учётной записи пользователя, вы также можете легко указать это в строке 10 следующим образом.:

38b7fa6c77dc344401485cd338ea4128

Назад