В настоящее время я работаю с системой NUMA на базе AMD Opteron. Для нужд моего текущего проекта я бы хотел, чтобы Linux и все системные процессы использовали только CPU0 (а желательно только одно из его ядер), оставив все остальные ядра для моих собственных эгоистических нужд. Я знаю что это будет действительно влияют на производительность системы, но сейчас все в порядке.
Итак, я хотел бы знать, можно ли вообще добиться этого, не вмешиваясь в исходный код ядра. Будем также признательны за любые ссылки на последние статьи о деталях реализации NUMA и SMP в Linux.
Есть 2 возможных параметра ядра:
maxcpus
isolcpus
Я думаю, что в вашем случае maxcpus - лучший выбор
Добавить
maxcpus=1
к опции загрузки ядра
оставив все остальные ядра на ...
Это означает, что вы действительно хотите использовать другие ядра.
Прежде чем вы начнете использовать другие ядра, используйте набор задач, чтобы применить привязку ко всем запущенным пользовательским процессам (включая init). например
taskset 0x00000001 1
Затем установите маску сродства на все остальное для процесса, который запустит ваши «эгоистические потребности», например
taskset 0xFFFFFFFE $$
Вы не можете заставить ядро работать только на одном процессоре (и это было бы в любом случае глупо), если вы не установите параметры загрузки, которые позволят системе получить доступ только к одному процессору.