내 프로세스가 CPU와 어떻게 관련되어 있는지 어떻게 확인하나요?

내 프로세스가 CPU와 어떻게 관련되어 있는지 어떻게 확인하나요?

호스트에 로그인하면 내 프로세스가 코어의 하위 집합에 연결되어 있는 것을 볼 수 있습니다.

# taskset -cp $$
pid 2040's current affinity list: 0-15,17,19,24-39,41,43

이유는 모르겠습니다. 이는 루트 또는 기타 로그인 셸에서 발생합니다. 파일에서 "affin" 또는 "tasksset" 문자열을 찾기 위해 /etc/를 검색했습니다.

find /etc -type f -exec grep -i taskset {} \; -print
find /etc -type f -exec grep -i affin {} \; -print

...아무것도 없습니다. 나는 공연했다

# pwd
/sys/fs/cgroup/cpuset
# cat cpuset.cpus
0-47

...배 전체가 거기에 있습니다. 나는 평생 동안 선호도 목록이 어디에 설정되어 있는지 알아낼 수 없습니다.

어쩌면 내가 나에 대해 언급해야 할 것 같아했다이전에 이 컴퓨터에서 CPU 파티셔닝 조정을 수행했지만 "처리량 성능"으로 변경하고 cpu-partitioning-variables.conf파일을 제거했습니다 /etc/tuned. 해당 프로세스에서 남겨진 아티팩트가 있을 수 있다고 생각했지만 찾을 수 없습니다.

그건 그렇고, 우리는 다음을 가지고 있습니다:

# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-3.10.0-1160.36.2.el7.x86_64 root=/dev/mapper/vg00-root ro nofb splash=quiet crashkernel=auto rd.lvm.lv=vg00/root nosoftlockup mce=ignore_ce ipv6.disable=1 transparent_hugepage=never spectre_v2=off nopti LANG=en_US.UTF-8

감사해요.

답변1

@artem-s-tashnikov 덕분에 initrd에서 답을 찾을 수 있을 것 같습니다. 바라보다https://github.com/redhat-performance/tuned/issues/381,나는 말했다:

시스템의 CPU 파티션을 조정했는데 CPU 연결 목록은 0-15,17,19,24-39,41,43입니다. Tuned에는 "부트로더"를 포함하는 일부 구성 요소가 tuned.conf에 있으므로 initrd가 변경되었습니다. 특히 initrd의 /etc/systemd/system.conf에는 "CPUAffinity=0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 19 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38이 포함되어 있습니다. 39 41 43"

우리는 이 조정을 사용하지 않기로 결정하고 처리량 성능으로 변경했습니다. 재부팅 후 systemd의 CPU 선호도 목록이 0-15,17,19,24-39,41,43임을 확인했습니다.

따라서 CPU 파티션을 INTO로 변경하면 initrd가 수정되지만 OUT을 변경해도 복원되지는 않습니다. 사람들이 스스로 발견할 수 있도록 이 유물을 남겨두었습니다. 최소한 문서에 언급하는 것이 더 나을 수도 있습니다. 감사해요.

관련 정보