Affinity Changer

Affinity Changer - сервис для динамической привязки процессов к процессорам/ядрам и установки приоритетов процессов.

Сервис устанавливается в систему, и работает в автоматическом режиме. Раз в 5 минут (по-умолчанию) сервис проверяет список процессов из конфигурационного файла, и если эти процессы не привязаны к конкретным процессорам/ядрам, привязывает их, равномерно распределяя по процессорам/ядрам, а также выставляет этим процессам приоритет указанный в настройках.

Для работы сервиса необходим .Net Framework 2.0 (скачать x86 версию, или x64 версию).

Текущая версия сервиса: 1.2.0

AffinityChangerSetup-1.2.0-x86.7z (300 Кб).

AffinityChangerSetup-1.2.0-x64.7z (311 Кб).

UPD: Affinity Changer для x64-версии был исправлен и перезалит (вылетала ошибка при установке).

Список изменений можно посмотреть здесь.

Подписаться на ленту новостей о новых версиях можно здесь.

Исходники можно взять здесь.

Установка сервиса

Качаем архив с файлами установки, и запускаем setup.exe.

Далее устанавливаем сервис как показано на скриншотах (Next -> Next -> Next -> Close):

Для удаления сервиса идем в установку и удаление программ, и удаляем Affinity Changer.

Настройка сервиса

Параметры настройки сервиса находятся в ветке реестра "HKEY_LOCAL_MACHINE\SOFTWARE\nick4eva's software\Affinity Changer".

Параметр CheckInterval (в миллисекундах), указывает интервал проверки процессов.

Параметр ConfigFile указывает путь к файлу со списком процессов и их приоритетами (по-умолчанию прописан путь к пустому файлу config.txt, который лежит в папке с сервисом). В конфигурационном файле нужно указывать по одному процессу на строку, после процесса через запятую можно указать желаемый приоритет процесса (если приоритет не указан, то по умолчанию ставится приоритет Normal). В качестве имени процесса можно указывать подстроку (сервис найдет все процессы в имени которых встречается данная подстрока) или регулярное выражение. Приоритет процесса может принимать значения: RealTime, High, AboveNormal, Normal, BelowNormal, Idle.

При изменении параметров сервис перезапускать не нужно, он сам перечитывает значение параметров в конце каждого интервала времени (конечо если стоит очень большой интервал времени, то проще перезапустить сервис, чтобы он заново считал параметры).

Благодарности

Хочу поблагодарить за помощь в разработке программы участников Украинской команды распределенных вычислений (участником которой я тоже являюсь): nikelong, rilian, ReMMeR, Vorchun.