프로세스 선호도가 비활성화된 프로세서로 설정된 경우 프로세스는 어떻게 되나요?

프로세스 선호도가 비활성화된 프로세서로 설정된 경우 프로세스는 어떻게 되나요?

저는 40개의 코어와 80개의 스레드를 갖춘 하이퍼 스레드 Ivy Bridge 시스템에서 Centos7을 실행하고 있습니다.

다음 for 루프는 pid <= 80인 모든 프로세스의 프로세서 선호도를 표시합니다.

for pid in $(ps -e -o pid=); do  if ((pid<=80))  ;   then   taskset -pc $pid  ;  fi; done

모든 가상 프로세서가 활성화되면 해당 출력은 다음과 같습니다.

pid 1's current affinity list: 0-79
pid 2's current affinity list: 0-79
pid 4's current affinity list: 0
pid 6's current affinity list: 0
pid 7's current affinity list: 0
pid 8's current affinity list: 0-79
pid 9's current affinity list: 0-79
pid 10's current affinity list: 0-79
pid 11's current affinity list: 0
pid 12's current affinity list: 1
pid 13's current affinity list: 1
pid 14's current affinity list: 1
pid 16's current affinity list: 1
pid 18's current affinity list: 2
pid 19's current affinity list: 2
pid 20's current affinity list: 2
pid 22's current affinity list: 2
pid 24's current affinity list: 3
pid 25's current affinity list: 3
pid 26's current affinity list: 3
pid 28's current affinity list: 3
pid 30's current affinity list: 4
pid 31's current affinity list: 4
pid 32's current affinity list: 4
pid 34's current affinity list: 4
pid 36's current affinity list: 5
pid 37's current affinity list: 5
pid 38's current affinity list: 5
pid 40's current affinity list: 5
pid 41's current affinity list: 6
pid 42's current affinity list: 6
pid 43's current affinity list: 6
pid 45's current affinity list: 6
pid 46's current affinity list: 7
pid 47's current affinity list: 7
pid 48's current affinity list: 7
pid 50's current affinity list: 7
pid 51's current affinity list: 8
pid 52's current affinity list: 8
pid 53's current affinity list: 8
pid 54's current affinity list: 8
pid 55's current affinity list: 8
pid 56's current affinity list: 9
pid 57's current affinity list: 9
pid 58's current affinity list: 9
pid 60's current affinity list: 9
pid 61's current affinity list: 10
pid 62's current affinity list: 10
pid 63's current affinity list: 10
pid 65's current affinity list: 10
pid 66's current affinity list: 11
pid 67's current affinity list: 11
pid 68's current affinity list: 11
pid 70's current affinity list: 11
pid 71's current affinity list: 12
pid 72's current affinity list: 12
pid 73's current affinity list: 12
pid 74's current affinity list: 12
pid 75's current affinity list: 12
pid 76's current affinity list: 13
pid 77's current affinity list: 13
pid 78's current affinity list: 13
pid 80's current affinity list: 13

어떤 이유로 Linux는 많은 시스템 프로세스의 프로세서 선호도를 특정 프로세서로 설정하기로 결정합니다. 특히 PID가 66에서 80 사이인 프로세스의 경우 프로세서 선호도는 프로세서 11, 12 또는 13으로 설정됩니다.

이제 프로세서 ID가 10보다 큰 모든 가상 프로세서를 비활성화하고 for 루프를 다시 실행합니다. 결과는 다음과 같습니다.

pid 1's current affinity list: 0-9
pid 2's current affinity list: 0-9
pid 4's current affinity list: 0
pid 6's current affinity list: 0
pid 7's current affinity list: 0
pid 8's current affinity list: 0-9
pid 9's current affinity list: 0-9
pid 10's current affinity list: 0-9
pid 11's current affinity list: 0
pid 12's current affinity list: 1
pid 13's current affinity list: 1
pid 14's current affinity list: 1
pid 16's current affinity list: 1
pid 18's current affinity list: 2
pid 19's current affinity list: 2
pid 20's current affinity list: 2
pid 22's current affinity list: 2
pid 24's current affinity list: 3
pid 25's current affinity list: 3
pid 26's current affinity list: 3
pid 28's current affinity list: 3
pid 30's current affinity list: 4
pid 31's current affinity list: 4
pid 32's current affinity list: 4
pid 34's current affinity list: 4
pid 36's current affinity list: 5
pid 37's current affinity list: 5
pid 38's current affinity list: 5
pid 40's current affinity list: 5
pid 41's current affinity list: 6
pid 42's current affinity list: 6
pid 43's current affinity list: 6
pid 45's current affinity list: 6
pid 46's current affinity list: 7
pid 47's current affinity list: 7
pid 48's current affinity list: 7
pid 50's current affinity list: 7
pid 51's current affinity list: 8
pid 52's current affinity list: 8
pid 53's current affinity list: 8
pid 54's current affinity list: 8
pid 55's current affinity list: 8
pid 56's current affinity list: 9
pid 57's current affinity list: 9
pid 58's current affinity list: 9
pid 60's current affinity list: 9
pid 61's current affinity list: 
pid 62's current affinity list: 
pid 63's current affinity list: 
pid 65's current affinity list: 
pid 66's current affinity list: 
pid 67's current affinity list: 
pid 68's current affinity list: 
pid 70's current affinity list: 
pid 71's current affinity list: 
pid 72's current affinity list: 
pid 73's current affinity list: 
pid 74's current affinity list: 
pid 75's current affinity list: 
pid 76's current affinity list: 
pid 77's current affinity list: 
pid 78's current affinity list: 
pid 80's current affinity list: 

pid = 1인 프로세스의 선호도는 이제 0-79 대신 0-9를 표시합니다. 이것이 바로 제가 기대했던 것입니다. 그러나 66에서 80 사이의 pid를 가진 프로세스에는 연관 목록이 표시되지 않습니다. 이는 선호도 목록이 0-9 또는 다른 것을 의미합니까? 시스템이 제대로 작동하는 것 같으니 이러한 분리된 프로세스가 제대로 작동하고 있는 것 같습니다.

물론 원래 선호도가 비활성화된 프로세서로 설정된 다른 프로세스도 많이 있습니다. 거의 1000줄의 출력을 표시하는 대신 처음 80개 프로세스에 대한 결과만 표시합니다.

관련 정보