Установка сходства в скрипте / пакетном файле

391
Harry Rogers

Установка соответствия для данного процесса с помощью следующего отлично работает

PowerShell "get-process Notepad | %% { $_.ProcessorAffinity=1 }" 

То, что я хотел бы сделать, это установить маску процессора по-разному для каждого экземпляра данного процесса, с которым сталкивается скрипт. То есть установите сходство экземпляров данного процесса в стиле «циклического перебора». Каждому экземпляру должно быть назначено «следующее доступное» ядро

 instance 1 -> 00000001 (first core) instance 2 -> 00000010 (second core) instance 3 -> 00000100 etc.. instance 8 -> 10000000 (8th core) instance 9 -> 00000001 (back to the first core again) instance 10 -> 00000010 (second core again) 

и так далее.

Обычно в каждый момент времени происходит от 10 до 20 экземпляров процесса, и сценарий будет запускаться по расписанию каждые несколько минут, чтобы равномерно распределить нагрузку по всем ядрам.

Заранее большое спасибо за любые предложения.

0
С вашим форматом, вероятно, связано [Изменить сходство процесса с помощью скрипта Windows в StackOverflow] (https://stackoverflow.com/questions/19187241/change-affinity-of-process-with-windows-script). Вы уже знаете, что делать и какие команды вам нужны. Так что я не совсем уверен, в чем твоя проблема? Используйте переменную и все готово? Seth 6 лет назад 1
Извините, если мне не ясно. Существует несколько примеров процесса I, для которого устанавливается сродство. Я хочу распределить их по всем доступным ядрам, чтобы они получили по одному ядру. Я искал синтаксис / логику скрипта, который мог бы справиться с 'n' экземплярами - т.е. настроить маску процессора для каждого встреченного экземпляра. Спасибо Harry Rogers 6 лет назад 0
Ну, мое упоминание все еще применяется. Используйте переменную для подсчета. Ваш код уже заботится о N экземплярах. Единственное, что вам нужно сделать, - это использовать переменную для подсчета и, возможно, по модулю, если у вас больше экземпляров ядер (таким образом, модуль будет иметь количество ядер). Вам просто нужно увеличивать эту переменную с каждой итерацией вашего цикла и использовать ее вместо статического значения. Seth 6 лет назад 0
Спасибо, что снова посмотрел на это, Сет. Я думаю, мой запрос больше о том, как написать скрипт, который а). подсчитывает количество экземпляров данного процесса и b) выполняет арифметику по модулю в цикле - я нашел несколько других постов, которые могут указать мне правильное направление, и я прочту еще немного о синтаксисе powershell Harry Rogers 6 лет назад 0

0 ответов на вопрос

Похожие вопросы