20.2. TuneD의 isolated_cores 옵션을 사용하여 CPU 격리
CPU 격리를 위한 초기 메커니즘은 커널 부팅 명령줄에 boot 매개변수 isolcpus=cpulist 를 지정하는 것입니다. RHEL for Real Time에 이 작업을 수행하는 권장 방법은 TuneD 데몬과 tuned-profiles-realtime 패키지를 사용하는 것입니다.
tuned-profiles-realtime 버전 2.19 이상에서는 기본 제공 함수 calc_isolated_cores 가 초기 CPU 설정을 자동으로 적용합니다. /etc/tuned/realtime->-<s.conf 구성 파일에는 기본 변수 콘텐츠가 isolated_cores=${f:calc_isolated_cores:2} 로 포함됩니다.
기본적으로 calc_isolated_cores 는 하우스키핑을 위해 소켓당 하나의 코어를 예약하고 나머지는 격리합니다. 기본 구성을 변경해야 하는 경우 /etc/tuned/realtime-anchors.conf 구성 파일의 isolated_cores=${f:calc_isolated_cores:2} 행을 주석 처리하고 TuneD의 isolated_cores 옵션을 사용하여 Isolating CPU의 절차 단계를 따릅니다.
사전 요구 사항
-
TuneD및tuned-profiles-realtime패키지가 설치됩니다. - 시스템에 대한 root 권한이 있습니다.
절차
-
루트 사용자로 텍스트 편집기에서
/etc/tuned/realtime->-<s.conf를엽니다. isolated_cores=cpulist를 설정하여 분리할 CPU를 지정합니다. CPU 번호와 범위를 사용할 수 있습니다.예:
isolated_cores=0-3,5,7이는 코어 0, 1, 2, 3, 5, 7을 분리합니다.
NUMA 노드 0에 코어가 8개인 두 개의 소켓 시스템에서 NUMA 노드 1에 코어 4-8이 있으며 멀티 스레드 애플리케이션에 두 개의 코어를 할당하는 경우 다음을 지정합니다.
isolated_cores=4,5이렇게 하면 사용자 공간 스레드가 CPU 4 및 5에 할당되지 않습니다.
관련이 없는 애플리케이션의 다른 NUMA 노드에서 CPU를 선택하려면 다음을 지정합니다.
isolated_cores=0,4이렇게 하면 모든 사용자 공간 스레드가 CPU 0 및 4에 할당되지 않습니다.
tuned-adm유틸리티를 사용하여 실시간TuneD프로필을 활성화합니다.# tuned-adm profile realtime- 변경 사항을 적용하려면 머신을 재부팅합니다.
검증
커널 명령 줄에서
isolcpus매개변수를 검색합니다.$ cat /proc/cmdline | grep isolcpus BOOT_IMAGE=/vmlinuz-4.18.0-305.rt7.72.el8.x86_64 root=/dev/mapper/rhel_foo-root ro crashkernel=auto rd.lvm.lv=rhel_foo/root rd.lvm.lv=rhel_foo/swap console=ttyS0,115200n81 isolcpus=0,4