CPU Mask / IRQ Affinity 계산기
CPU 리스트(0-3,8) ↔ 16진수 CPU mask ↔ smp_affinity_list 형식을 양방향으로 변환합니다. taskset, isolcpus, nohz_full, /proc/irq/*/smp_affinity 명령을 자동 생성합니다.
기본 설정
1–4096 (BigInt 처리)
프리셋
입력 (아무 형식이나)
CPU 선택 (클릭으로 토글)
변환 결과
명령 생성
생성된 CPU 집합을 실제 리눅스 명령으로 변환합니다. 각 형식의 용도는 아래 개요를 참고하십시오.
taskset (프로세스(Process) CPU affinity)
/proc/irq/<N>/smp_affinity (IRQ affinity)
커널 파라미터 (부팅 시 격리(Isolation))
cpuset cgroup
개요
CPU 리스트 형식
리눅스 커널은 사람이 읽기 쉬운 CPU 리스트 형식을 사용합니다. 쉼표로 여러 항목을 나열하고, 하이픈으로 범위를 표현합니다. 예: 0-3,8,10-12는 CPU 0,1,2,3,8,10,11,12를 의미합니다. 이 형식은 /proc/irq/*/smp_affinity_list, isolcpus=, nohz_full=, cpuset.cpus 등에서 사용됩니다.
CPU Mask (hex) 형식
/proc/irq/*/smp_affinity는 16진수 비트맵(Bitmap)을 사용합니다. CPU N은 비트 N에 매핑(Mapping)되며(비트 0 = LSB = CPU0), NR_CPUS가 32를 초과하면 쉼표로 32비트씩 상위→하위 순으로 그룹화합니다. 예: 64-CPU 시스템에서 CPU 0-31만 활성화되면 00000000,ffffffff로 표시됩니다.
taskset과 smp_affinity 차이
taskset -c 0-3 <cmd>: 리스트 형식. 프로세스/스레드(Thread)의 CPU affinity 설정taskset 0xff <cmd>: 연속 hex 형식(쉼표 없음). 커널이 동일한 비트맵으로 해석echo <hex> > /proc/irq/N/smp_affinity: 쉼표 구분 32비트 그룹 형식. IRQ를 처리할 수 있는 CPU 집합 제어echo <list> > /proc/irq/N/smp_affinity_list: 리스트 형식으로 동일한 IRQ affinity 설정
주의
- 이 계산기는 사용자가 입력한 NR_CPUS 범위에서만 검증합니다. 실제 시스템의
/sys/devices/system/cpu/possible값을 초과하면 커널이 설정을 거부할 수 있습니다. - 브라우저에서는
lscpu나/proc/cpuinfo에 접근할 수 없으므로 NUMA 노드/SMT 형제 토폴로지(Topology)는 사용자가 직접 파악해야 합니다. isolcpus=는nohz_full=,rcu_nocbs=와 함께 설정해야 실시간(Real-time) 워크로드 격리 효과가 큽니다.