Usando o taskset para definir a afinidade do processador

1

Eu tenho o seguinte código em um script bash:

echo "bash pid => $$";
echo "processor affinity before => $(taskset -p $$)"
taskset -cp ${AN_INTEGER} $$
echo "processor affinity after => $(taskset -p $$)"

Eu recebo esta saída:

processor affinity before => pid 5047's current affinity mask: ff
pid 5047's current affinity list: 0-7
pid 5047's new affinity list: 1
processor affinity after => pid 5047's current affinity mask: 2

alguém sabe o que isso significa?

A razão pela qual eu comecei a mexer com a afinidade do processador é porque eu iniciava vários processos filho bash, e todas as afinidades do processo filho bash tinham o valor "ff", então parecia que todas estavam mirando na mesma CPU.

    
por Alexander Mills 11.09.2017 / 03:37

1 resposta

3

taskset usa uma máscara para especificar em quais CPUs um processo pode ser executado . Cada bit mapeia para uma CPU; Se um bit for definido como 1, o processo pode ser executado nessa CPU, se estiver definido como 0, não será possível. Assim, uma máscara de FF significa qualquer CPU de 0 a 7 (não uma CPU específica), e uma máscara de 2 significa apenas a CPU 1.

    
por 11.09.2017 / 04:56