코어를 반드시 끄 거나 비활성화 할 필요는 없습니다 .
당신이 사용하는 것이 CPUSETS 및 taskset를
http://man7.org/linux/man-pages/man7/cpuset.7.html
CPU 세트는 CPU 및 메모리 노드 목록을 정의합니다 ...
cpuset 파일 시스템은 프로세스의 프로세서 배치 및 메모리 배치를 제어하는 데 사용되는 커널 cpuset 메커니즘에 대한 의사 파일 시스템 인터페이스입니다. 일반적으로 / dev / cpuset에 마운트됩니다.
cpusets를 기본적으로 지원하도록 컴파일 된 커널이있는 시스템에서 모든 프로세스는 cpuset에 연결되며 cpusets는 항상 존재합니다. 시스템이 cpusets를 지원하면 / proc / filesystems 파일에 nodev cpuset 항목이 있습니다. 관리자는 cpuset 파일 시스템을 마운트하여 (아래 예 섹션 참조) 시스템에서 프로세서 및 해당 시스템 프로세스의 메모리 배치를 제어하도록 cpusets를 구성 할 수 있습니다. 기본적으로 시스템의 cpuset 구성이 수정되지 않거나 cpuset 파일 시스템이 마운트되지 않은 경우 cpuset 메커니즘은 존재하지만 시스템 작동에 영향을 미치지 않습니다.
시스템의 CPU는 패키지 내의 다중 프로세서 코어 및 프로세서 코어 내의 하이퍼-스레드를 포함하여 프로세스가 실행될 수있는 모든 논리 처리 장치를 포함한다. 메모리 노드에는 주 메모리의 모든 고유 뱅크가 포함됩니다. 소형 및 SMP 시스템에는 일반적으로 모든 시스템의 기본 메모리를 포함하는 하나의 메모리 노드 만 있고 NUMA (비 균일 메모리 액세스) 시스템에는 여러 개의 메모리 노드가 있습니다.
당신은 당신이 CPUSETS을 구성하고 당신의 프로세스를 시작 것 1 CPU를 가진 6 개의 코어가있는 경우 즉, cpuset에 단 하나 개의 코어에 구성되어, 예를 들어 핵심 # 3을 말한다. 병렬 프로세스 인 경우, 코어가 하나만 지정된 특정 CPU에서 4 개의 프로세스를 시작한 경우 4 개의 프로세스 각각이 코어 # 3에서 25 %의 CPU 사용률을 갖도록 모두 하나의 코어로 제한됩니다.
이를 바탕으로 일반적으로 발생하는 CPU 세트 는 다음과 같이 구성됩니다.
- 예를 들어 200 개 이상의 코어 시스템에서 cpusetA는 코어 0..60이며, cpusetB는 코어 61..70입니다. cpusetC는 코어 71..80이고; 그러나 관리자 / 건축가는 구성을 선택합니다.
- cpusetA는 특정 사용자 및 / 또는 특정 소프트웨어 프로그램에 할당됩니다. cpusetB는 다른 사용자 / 프로그램에 할당됩니다. 등등.
- 사용자 는 주어진 cpuset 내에서 N 코어를 요청하는 작업 (프로세스)을 시작 하고 이제 여러 (병렬) 프로세스가 주어진 cpuset에 제한 됩니다. 그리고 주어진 CPU 세트에 국한된 N 개의 병렬 처리에 대해, 이들 프로세스 각각은 프로세서 친화력 또는 CPU 친화력 을 사용해야 하므로 병렬 처리는 CPU 내부의 다른 코어에서 쓰러지지 않습니다.
또한 : https://linux.die.net/man/1/taskset
maxcpus=1
명령을 어디에 넣었는지 확실하지 않습니까? 해당 문자열을grub.cfg
부팅 옵션으로 넣었습니까 ? (댓글에 답하는 대신 질문을 업데이트하십시오).