14.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) 도움말 페이지를 참조하십시오.
절차
필요한 옵션 및 인수를 사용하여
작업 세트를실행합니다.CPU 마스크 대신 -c 매개변수를 사용하여 CPU 목록을 지정할 수 있습니다. 이 예에서
my_em embeddedded_process는 CPU 0,4,7-11에서만 실행되도록 지시하고 있습니다.# taskset -c 0,4,7-11 /usr/local/bin/my_embedded_process이 호출은 대부분의 경우 더 편리합니다.
현재 실행되고 있지 않은 프로세스의 선호도를 설정하려면
taskset을 사용하고 CPU 마스크와 프로세스를 지정합니다.이 예에서
my_em embeddedded_process는 CPU 3만 사용하도록 지시합니다(CPU 마스크의 10진수 버전 사용).# taskset 8 /usr/local/bin/my_embedded_process비트마스크에서 두 개 이상의 CPU를 지정할 수 있습니다. 이 예에서
my_em embeddedded_process는 프로세서 4, 5, 6, 7에서 실행되도록 지시합니다(CPU 마스크의 16진수 버전 사용).# taskset 0xF0 /usr/local/bin/my_embedded_process변경하려는 프로세스의 PID와 함께
-p(--pid) 옵션을 사용하여 이미 실행 중인 프로세스의 CPU 선호도를 설정할 수 있습니다. 이 예에서 PID가 7013인 프로세스는 CPU 0에서만 실행되도록 지시합니다.# taskset -p 1 7013
나열된 옵션을 결합할 수 있습니다.