Definindo globalmente a afinidade da CPU

4

Existe uma maneira de fazer todos os processos, exceto os que eu intencionalmente defini com taskset ou numactl usando apenas certos núcleos / memória (sem passar por todos os processos de cada processo e configurando eu mesmo)?

Mais alguns detalhes: Eu tenho 2 chips físicos de CPU, cada um com 4 núcleos / 8 segmentos, juntamente com um total de 256 GB de RAM. A memória não é distribuída uniformemente entre os dois barramentos de memória da CPU. Eu gostaria que aquele com significativamente menos memória fosse o de propósito geral com a maioria dos programas (por exemplo, tarefas em segundo plano) em execução nessa CPU e com sua memória. Então, na CPU, com a maior parte da memória, execute tarefas especiais que eu estarei cronometrando a velocidade e quero que elas não tenham uma contenção de CPU, NUMA ou qualquer coisa assim.

    
por thaimin 04.10.2017 / 21:30

1 resposta

3

Isso pode ser conseguido modificando a configuração do systemd. Primeiro, altere as configurações de afinidade padrão em /etc/systemd/system.conf adicionando:

[Manager]
CPUAffinity=1

Em seguida, sob sua unidade, limpe a afinidade e redefina-a para as CPUs desejadas

[Exec]
CPUAffinity=
CPUAffinity=2-4
    
por 04.10.2017 / 22:48

Tags