
Я запускаю тесты скорости между разными версиями одного и того же приложения. Я хочу иметь возможность выделять фиксированный набор процессоров для каждого приложения. Например, я хочу запустить приложение ровно на двух процессорах и не больше. Также я хочу, чтобы эти два процессора были эксклюзивными для этого процесса, чтобы никакие другие процессы не могли «украсть» процессорное время и снизить оценку теста.
Есть ли способ сделать это в Linux? Я слышал о cgroups, контейнерах и docker. Помогут ли они? Также, какой подход самый простой (не обязательно самый удобный для пользователя) и который дает мне больше всего контроля?
Также я немного беспокоюсь о гиперпоточности. Если я выделю один логический процессор для этого тестового процесса, а другой процесс будет гиперпоточным во время теста, не ухудшит ли это результат теста? Тогда мне также нужно будет разделить процессоры по физическим процессорам.