Файл конфигурации config.json
служит для управления поведением приложения Process Governor. Он позволяет
определить, как приложение будет регулировать приоритеты процессов и служб, их I/O приоритеты и соответствие к ядрам
процессора.
Файл конфигурации регулярно проверяется приложением и при наличии изменений - применяется.
В этом примере определены два правила: одно для процесса и одно для службы.
{
"ruleApplyIntervalSeconds": 1,
"logging": {
"enable": true,
"level": "WARN",
"maxBytes": 1024,
"backupCount": 1
},
"rules": [
{
"processSelector": "example.exe",
"priority": "High",
"ioPriority": "Normal",
"affinity": "1;3-5"
},
{
"serviceSelector": "Audio*",
"priority": "Realtime",
"ioPriority": "High",
"affinity": "0;2;4"
}
]
}
Файл конфигурации состоит из нескольких ключевых секций:
Этот параметр определяет интервал в секундах, с которым правила будут применяться к процессам и службам. По умолчанию
установлено значение 1
, что означает применение правил каждую секунду.
Эта секция содержит настройки логирования. Она позволяет включить или отключить логирование, задать уровень логирования, максимальный размер файла лога и количество резервных копий логов, которые необходимо хранить.
enable
: Включает или отключает логирование.level
: Уровень логирования (INFO
,WARN
и т.д.).maxBytes
: Максимальный размер файла лога в байтах.backupCount
: Количество резервных копий файла лога.
Это секция определяет список правил, по которым Process Governor будет управлять процессами и службами. Каждое правило определяется объектом с набором параметров.
-
processSelector
(строка, опционально): Указывает имя процесса или шаблон для сопоставления.
Вы можете использовать подстановочные символы, включая*
и?
, чтобы сопоставить несколько процессов.- Пример:
"processSelector": "example.exe"
- Пример с подстановочными символами:
"processSelector": "logioptionsplus_*.exe"
- Пример:
-
serviceSelector
(строка, опционально): Указывает имя службы или шаблон для сопоставления.
Вы можете использовать подстановочные символы, включая*
и?
, чтобы сопоставить несколько служб.- Пример:
"serviceSelector": "MyService"
- Пример с подстановочными символами:
"serviceSelector": "Audio*"
- Пример:
-
priority
(строка, опционально): Устанавливает приоритет процесса или службы.
Допустимые значения:"Idle"
"BelowNormal"
"Normal"
"AboveNormal"
"High"
"Realtime"
- Пример:
"priority": "High"
-
ioPriority
(строка, опционально): Устанавливает приоритет ввода/вывода для процесса или службы.
Допустимые значения:"VeryLow"
"Low"
"Normal"
"High"
: Установка приоритета ввода-вывода на "High" может вызвать ошибку AccessDenied в большинстве случаев.- Пример:
"ioPriority": "Normal"
-
affinity
(строка, опционально): Определяет привязку процесса к ядру CPU.
Вы можете указать привязку следующим образом:- Диапазон (включительно):
"affinity": "0-3"
- Конкретные ядра:
"affinity": "0;2;4"
- Комбинация:
"affinity": "1;3-5"
- Диапазон (включительно):
Встроенная валидация предотвращает одновременное задание processSelector
и serviceSelector
в одном правиле. Если вы
попытаетесь задать оба параметра, программа уведомит вас об ошибке и потребует исправления правила.