20.5. taskset 유틸리티를 사용하여 프로세스를 CPU에 바인딩
taskset 유틸리티는 작업의 PID(프로세스 ID)를 사용하여 CPU 선호도를 보거나 설정합니다. 유틸리티를 사용하여 선택한 CPU 선호도로 명령을 실행할 수 있습니다.
선호도를 설정하려면 CPU 마스크를 10진수 또는 16진수로 가져와야 합니다. mask 인수는 명령 또는 PID를 수정하는 데 적합한 CPU 코어를 지정하는 비트 마스크 입니다.
taskset 유틸리티는 NUMA(Uniform Memory Access) 시스템에서 작동하지만 사용자가 스레드를 CPU 및 가장 가까운 NUMA 메모리 노드에 바인딩할 수 없습니다. 이러한 시스템에서 taskset은 기본 도구가 아니며 numactl 유틸리티 대신 고급 기능을 사용해야 합니다.
자세한 내용은 시스템의 numactl(8) 도움말 페이지를 참조하십시오.
사전 요구 사항
- 시스템에 대한 root 권한이 있습니다.
프로세스
필요한 옵션 및 인수를 사용하여
taskset을 실행합니다.CPU 마스크 대신 -c 매개변수를 사용하여 CPU 목록을 지정할 수 있습니다. 이 예에서
my_embedded_process는 CPU 0,4,7-11에서만 실행되도록 지시합니다.# taskset -c 0,4,7-11 /usr/local/bin/my_embedded_process이 호출은 대부분의 경우 더 편리합니다.
현재 실행되고 있지 않은 프로세스의 선호도를 설정하려면
taskset을 사용하여 CPU 마스크 및 프로세스를 지정합니다.이 예에서
my_embedded_process는 CPU 3만 사용하도록 지시합니다(CPU 마스크의 10진수 버전 사용).# taskset 8 /usr/local/bin/my_embedded_process비트마스크에서 두 개 이상의 CPU를 지정할 수 있습니다. 이 예에서
my_embedded_process는 프로세서 4, 5, 6, 7에서 실행되도록 지시합니다(CPU 마스크의 16진수 버전 사용).# taskset 0xF0 /usr/local/bin/my_embedded_processCPU 마스크 및 변경하려는 프로세스의 PID와 함께
-p(--pid) 옵션을 사용하여 이미 실행 중인 프로세스의 CPU 선호도를 설정할 수 있습니다. 이 예에서 PID가 7013인 프로세스는 CPU 0에서만 실행되도록 지시됩니다.# taskset -p 1 7013작은 정보나열된 옵션을 결합할 수 있습니다.
자세한 내용은 시스템의
taskset(1)및numactl(8)매뉴얼 페이지를 참조하십시오.