Como configurar o Linux para usar apenas uma CPU / núcleo de um sistema NUMA

2

Atualmente, estou trabalhando com um sistema NUMA baseado em AMD Opteron. Para as necessidades do meu projeto atual, gostaria de fazer com que o Linux e todos os processos do sistema usem apenas o CPU0 (e, de preferência, apenas um de seus núcleos), deixando todos os outros núcleos para minhas próprias necessidades egoístas. Eu sei que isso vai realmente impactar o desempenho do sistema, mas está tudo bem agora.

Então, eu gostaria de saber se é possível conseguir tudo sem mexer no código-fonte do kernel. Quaisquer links para os artigos atualizados sobre detalhes de implementação do NUMA e SMP no Linux também serão apreciados.

    
por Roman Dmitrienko 21.03.2011 / 11:25

2 respostas

1

leaving all other cores for...

Isso significa que você deseja realmente usar os outros núcleos.

Antes de começar a usar os outros núcleos, use o conjunto de tarefas para aplicar a afinidade a todos os processos do usuário em execução (incluindo o init). por exemplo,

taskset 0x00000001 1

Em seguida, defina a máscara de afinidade para todo o restante do processo que lançará suas "necessidades egoísticas", por exemplo,

taskset 0xFFFFFFFE $$

Você não pode forçar o kernel a rodar em apenas uma CPU (e seria burrice), a menos que você defina as opções de inicialização que permitirão que o sistema acesse apenas uma única CPU.

    
por 21.03.2011 / 14:11
1

Existem 2 parâmetros de kernel possíveis:

maxcpus

isolcpus

Eu acho que no seu caso, maxcpus é a melhor escolha

Adicionar

maxcpus=1

para a opção de inicialização do kernel

    
por 21.03.2011 / 12:44