Как я могу изменить привязку процессора по умолчанию в Linux?

Я хочу запустить ряд тестов на многоядерной системе под управлением Linux. Я хочу зарезервировать одно из ядер для своих тестов. Я знаю, что могу использовать sched_setaffinity, чтобы ограничить свои тесты этим ядром. Как я могу отключить все другие процессы от моего ядра? Другими словами, как я могу установить сходство по умолчанию для всех процессов, чтобы не включать мое ядро?


person Nathan Fellman    schedule 07.04.2012    source источник


Ответы (1)


Даже если вы отключите все остальные процессы от своего «зарезервированного для бенчмаркинга» ядра, имейте в виду, что вы не можете помешать им использовать переменную и непредсказуемую долю ограниченной пропускной способности памяти для многоядерного чипа, и что вы можете не мешать им предъявлять переменные требования к общим кешам L2 и L3.

ИМХО, для воспроизводимого научного бенчмаркинга нужна машина сама по себе.

person timday    schedule 07.04.2012
comment
Это выделенная машина, на которой работают только мои тесты. Однако я достаточно не знаком с Linux и достаточно хорошо знаком с Windows, чтобы знать, что в фоновом режиме работает несколько десятков системных процессов, над которыми у меня мало контроля. Я пытаюсь свести к минимуму их влияние. - person Nathan Fellman; 08.04.2012
comment
Ах я вижу; Хорошо, я предполагал, что вы пытаетесь ограждать какой-то ресурс на своем рабочем столе. Но лично я бы решил проблему, используя вместо этого приоритет планирования; просто запустите процесс бенчмаркинга с более высоким приоритетом, чем эти системные процессы. См. также stackoverflow.com/questions/6957687/, особенно мой комментарий к ответу Ариэля. - person timday; 08.04.2012