9.3.3. 실시간 프로필에서 NUMA당 하우스키핑 조정
실시간 프로필에서 NUMA 노드당 하우스키핑 CPU 세트를 조정할 수 있습니다. 이렇게 하면 하우스키핑 작업이 NUMA 노드에 균등하게 분배되도록 하여 시스템의 성능이 최적화됩니다.
이 기능은 여러 NUMA 노드가 있는 시스템에 특히 유용합니다. 경합을 줄이고 전반적인 성능을 개선하는 데 도움이 되기 때문입니다.
기본 실시간 tuned 프로필은 NUMA 노드당 하나의 하우스키핑 CPU를 예약합니다(hk_per_numa=1). 컨테이너 워크로드에 사용 가능한 CPU가 더 필요한 경우 이 동작을 수정할 수 있습니다.
사전 요구 사항
- 호스트 시스템은 Red Hat Enterprise Linux 버전 9.6 이상에서 실행되고 있습니다.
-
tuned서비스가 실행 중입니다. -
rteval컨테이너가 설치되어 실행 중입니다. -
podman서비스가 실행 중입니다. -
tuned-profiles-realtime패키지가 설치됩니다.
프로세스
realtime-variables.conf파일을 수정하여 NUMA 노드별로 하우스키핑 CPU 세트를 조정합니다.텍스트 편집기에서
/etc/tuned에 있는realtime-variables.conf파일을 엽니다.$ sudo vi /etc/tuned/realtime-variables.confisolated_cores변수를 찾습니다. 기본적으로 이 값은1로 설정됩니다. 즉, NUMA 노드당 하나의 코어가 격리된 또는 비하우스키핑 사용을 위해 예약되어 있습니다. 이 값을 늘릴 수 있지만 NUMA 노드당 총 CPU 수보다 작아야 합니다.다음 예제에서는 NUMA 노드당 24개의 코어가 있는 시스템에서
isolated_cores를3으로 설정합니다.isolated_cores=${f:calc_isolated_cores:3}
- 변경 사항을 저장하고 파일을 닫습니다.
tuned실시간 프로필을 다시 적용합니다.$ sudo tuned-adm profile realtime이로 인해 테스트 중에 총 6개의 CPU( NUMA 노드당)가 생성되는 반면, 시스템은
isolcpus세트의 나머지 코어를 예약합니다. 이 구성은 측정에 사용됩니다. 혼합된 우선 순위 구성은isolcpus세트 대신 사용자 정의 토폴로지에 컨테이너를 배포할 수 있습니다.또는 자동 노드 수를 사용하는 대신 사용자 지정 CPU 범위를 수동으로 지정할 수 있습니다. 이렇게 하면 분리된 코어를 완벽하게 제어할 수 있으므로 비균형 토폴로지 또는 특수 CPU 레이아웃으로 시스템을 미세 조정할 수 있습니다.
검증
-
realtime-variables.conf파일의 변경 사항을 확인합니다. - 시스템을 재부팅하여 변경 사항을 적용합니다.
/proc/cmdline파일을 보고isolcpus설정을 확인합니다.$ cat /proc/cmdline BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.XX.X-XX.X.X.el9_6.x86_64+rt root=/dev/mapper/rhel_rt--qe--11-root ro crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=UUID=00cbf36d-ffaa-4285-a381-5c1d868eb3e3 rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81 skew_tick=1 tsc=reliable rcupdate.rcu_normal_after_boot=1 isolcpus=managed_irq,domain,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47 intel_pstate=disable nosoftlockup