2017-09-11 40 views
0

j'ai le code suivant dans un script bash:affinité du processeur sur Linux en utilisant taskset

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

Je reçois cette sortie:

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 

personne ne sait ce que cela signifie? La raison pour laquelle j'ai commencé à jouer avec l'affinité du processeur est que je lancerais plusieurs processus enfants bash, et toutes les affinités du processus enfant bash avaient la valeur "ff", donc il semblait qu'ils visaient tous le même CPU.

Répondre

1

L'affinité masque commande le réglé de processeurs qu'un processus peut fonctionner sur - pas un seul processeur spécifique. Les bits qui sont un 1 dans ce masque représentent un processeur sur lequel le processus peut s'exécuter. Puisque vous avez spécifié que vous voulez que ce processus fonctionne seulement sur CPU 1, le masque d'affinité est maintenant 0b00000010, ou 2.

+1

hein, je suppose que je pourrais rechercher la différence entre la liste d'affinité et le masque d'affinité –