보기 방법: 1. 프로세스가 실행 중인 CPU를 표시할 수 있는 top 명령을 사용합니다. 구문은 "top -p 프로세스 번호"입니다. 2. 프로세스가 어떤 CPU에서 실행되는지 확인하는 데 사용되는 taskset 명령을 사용합니다. 또는 스레드가 실행 중일 때 구문은 "tasksset -p 프로세스 번호"입니다.
이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.
방법 1: top 명령 사용
top 명령은 프로세스가 실행 중인 CPU를 표시하고 시간 경과에 따른 변경 사항을 지속적으로 모니터링하여 어떤 CPU를 확인할 수 있습니다. 프로세스가 실행 중입니다.
사용 단계:
top -p [进程号],例如 top -p 3000
"F" 키를 누르고 위쪽 및 아래쪽 키를 사용하여 P = 마지막 사용 CPU를 선택한 다음 "*"가 나타나면 선택을 표시한 다음 "q"를 누릅니다. 출구.
방법 2: taskset 명령 사용
taskset은 특정 프로세스(또는 스레드)가 실행 중인 CPU를 확인하거나 특정 또는 특정 CPU에서 프로그램이 실행되도록 할 수 있습니다.
taskset 매개변수 옵션:
(1 )-p, --pid: 기존 PID에서 작동하고 새 작업을 시작하지 않습니다.
(2)-c, --cpu-list: 비트마스크가 아닌 프로세서 번호 목록을 지정합니다. 목록에는 쉼표와 범위로 구분된 여러 항목이 포함될 수 있습니다. 예를 들어 0, 5, 7, 9 - 11입니다.
1) 프로세스가 실행 중인 CPU를 표시합니다: -p 매개변수
예 1:
[root@localhost ~]# taskset -p 21184
표시 결과:
pid 21184’s current affinity mask: ffffff
참고: 21184는 프로세스 번호입니다. 결과를 표시하는 ffffff는 실제로 바이너리의 하위 24비트가 모두 1인 비트마스크입니다. 각 1은 CPU 1개에 해당하며 프로세스가 CPU 24개에서 실행되고 있음을 나타냅니다.
예 2:
[root@localhost ~]# taskset -p 2030
표시 결과:
pid2030’s current affinity mask: f
참고: sshd가 4개의 CPU를 무작위로 켜는 것을 보여줍니다.
예 3:
[root@localhost ~]# taskset -p 2726
표시 결과:
pid 2726’s current affinity mask: 3
참고: 표시된 십진수 3은 이진수로 변환되고 가장 낮은 두 개는 1입니다. 각 1은 하나의 CPU에 해당하므로 프로세스는 2개의 CPU에서 실행됩니다.
*참고: *cpu 레이블은 0부터 시작하므로 cpu1은 두 번째 CPU를 나타냅니다(첫 번째 CPU 레이블은 0입니다).
변환 방법에 대하여
8코어의 CPU ID: 7 6 5 4 3 2 1 0
10의 해당 십진수: 128 64 32 16 8 4 2 1
16진수 16진수는 다음과 같습니다. 각 16진수 이진수에 해당하는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
: 0=0000,1 =0001,2= 0010,3=0011,4=0100,5=0101,6=0110,7=0111,8=1000,9=1001,A=1010,
B=1011,C=1100,D =1101,E= 1110,F=1111
예를 들어, pid 8987의 현재 선호도 마스크: ff ff는 16진수이며 이진수: 11111111로 변환됩니다. 이는 sshd가 8개의 CPU에서 대체된다는 의미입니다! 따라서 각 값에 해당합니다!
예를 들어 16진수로 40을 입력한 다음 이진수 01000000으로 변환하면 7번째 CPU에서 작동한다는 의미입니다.
추천 학습:Linux 비디오 튜토리얼
위 내용은 Linux에서 프로세스가 어떤 CPU에 있는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!