실험환경
- OS: Ubuntu 18.04
Linux에 실행되는 Process를 특정 Core에 Scheduling 해야 하거나 현재 실행되고 있는 Process가 몇 번 Core에서 실행되고 있는지 등을 확인하고 싶을 때 “taskset” 명령어를 사용하면 된다. 아래 자주 사용하는 옵션을 정리하였다. 더 많은 옵션은 출처 1에서 확인 할 수 있다.
PID_NUMBER 연산을 수행하고 있는 Core 번호 확인 (결과는 16진수로 표시됨)
- $taskset -p PID_NUMBER
새로 생성되는 Process (Job)을 특정 Core에 Scheduling 하기
- $taskset -c CORE_ID CMD
- CORE_ID 예제: 0, 1, 4 또는 0-4 또는 1
- CMD 예제: gcc main.cpp 등
현재 실행 중인 Process (Job)을 다른 Core로 변경하기
- $taskset -cp CORE_ID PID_NUMBER
개인적으로 위 3개의 명령어를 많이 사용한다. 아래 그림 1은 새롭게 실행되는 Process를 3번 Core에 할당하도록 한 후 htop 화면을 캡처한 사진이다. 3번 Core에서 실행하도록 하면 4번 Core가 100%로 동작하고 있는 것을 확인 할 수 있다. taskset은 Core Index가 0번에서 시작하고 htop의 경우 Core Index가 1번에서 시작하기 때문에 3과 4는 같은 Core를 의미한다.

출처
- http://coffeenix.net/board_view.php?bd_code=1702