외부에서 프로세스/세션을 특정 수의 코어로 제한해야 합니다.
CPU 선호도(실제 코어를 지정하는 것을 좋아하지 않음) 및 cgroup(프로젝트에 통합하기 어려움) 외에 다른 가능성이 있습니까?
답변1
CPU 종속 비트의 경우 일반적으로 프로그램이 실행되는 물리적 CPU와 관련된 다양한 문제 집합을 해결하도록 설계되었습니다. 그렇기 때문에 CPU 선호도를 통해 말하는 특정 CPU를 지정해야 합니다.
어떤 CPU가 사용되는지 신경 쓰지 않는다는 사실로 판단하면 시간 조각을 다시 구성하고 싶을 뿐인 것 같습니다. cgroup은 실제로 원하는 것을 달성하며 실행 CPU와 독립적으로 CPU 시간을 조정하는 메커니즘입니다.
결정적인 차이점은 기본적으로 다음과 같습니다. 프로세스가 실행되는 물리적 코어에 관심이 있거나 관심이 없거나 그렇지 않습니다. 특정 CPU에서 프로세스를 실행해야 하는 성능 요구 사항이 없는 경우(특정 CPU 캐시는 뜨거운 상태로 유지되어 관련 프로세스가 외부 NUMA 노드에서 실행되지 않고 특정 CPU 집합에서 특정 인터럽트가 처리되는 등) ) 그러면 CPU 시간 관리만 제어할 수도 있습니다. 이 경우 실제로 "CPU 시간"을 의미할 때 "CPU 코어"라는 용어로 생각하는 것은 잘못된 것입니다.
cgroup의 어떤 부분을 통합하는 데 문제가 있습니까? 귀하가 겪고 있는 구체적인 문제가 무엇인지 알게 되면 답변을 업데이트할 수 있습니다.
답변2
이를 달성할 수 있는 다른 방법이 실제로 없는 것 같았기 때문에 우리는 결국 cgroup을 선택하게 되었습니다.
Cgroup을 사용하면 커널 스케줄러 cpu.cfs_period_us
와 cpu.cfs_quota_us
. 이는 CPU 코어의 명시적인 지정을 방지합니다.
답변3
이것은 여러분에게 너무 클 수 있지만 내 컴퓨터에서 사용할 수 있는 것보다 적은 수의 코어에서 무언가를 테스트해야 하는 경우 VirtualBox VM을 설정하고 구성에서 CPU 수를 지정합니다.