
저는 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개 프로세스에 대한 결과만 표시합니다.