9장. 실시간 작업 실행에 rteval 컨테이너 사용
RHEL(Red Hat Enterprise Linux)의 rteval (실시간 평가) 컨테이너는 중요한 작업의 대기 시간이 짧은 실행을 제공합니다. 실시간 응답을 유지하고 적절한 작업 실행을 보장하기 위해 다양한 시스템 로드에서 타이머가 가동 시간을 측정합니다.
rteval 툴은 ( cyclictest 또는 rtla와 같은 툴을 사용하여) 측정 프로세스를 우선순위가 높은 작업으로 설정합니다. 이 측정 프로세스는 시스템에서 생성된 부하보다 우선 순위가 높습니다. 결과적으로 R teval 컨테이너는 서로 다른 부하에서 실시간 작업의 작동 시간을 측정하여 시스템이 실시간 워크로드를 효과적으로 처리할 수 있도록 합니다.
9.1. rteval 컨테이너의 호스트 테스트 링크 복사링크가 클립보드에 복사되었습니다!
대기 시간에 민감한 워크로드에서 rteval 컨테이너를 실행하려면 컨테이너 기술에 가상화 스택에 추가 커널이 필요하지 않으므로 호스트 시스템을 조정해야 합니다. 베어 메탈에 적용되는 대부분의 튜닝 전략은 컨테이너 환경에도 적용할 수 있습니다.
파일에 정의된 기본 매개변수를 사용하여 realtime -variables.conftuned-adm 로 실시간 프로필을 적용해야 합니다.
실시간 프로필은 다음 작업을 수행합니다.
- 다양한 커널 명령줄 옵션을 설정합니다.
- NUMA(Non-Uniform Memory Access) 토폴로지를 감지합니다.
-
NUMA 노드가 두 개 이상 있을 때 각 노드의 첫 번째 CPU를
isolcpus세트에 할당하는 모든 CPU를 할당합니다.
rteval 컨테이너에 대한 호스트 시스템을 구성합니다.
사전 요구 사항
- 호스트 시스템은 Red Hat Enterprise Linux 버전 10 이상에서 실행되고 있습니다.
-
tuned및tuned-profiles-realtime패키지가 설치됩니다. -
tuned서비스가 실행 중입니다. -
podman애플리케이션이 설치되어 실행 중입니다.
프로세스
필수 패키지를 설치합니다.
$ sudo dnf install rteval kernel-rt podman -y설치된 커널을 확인합니다.
$ sudo grubby --info=ALL index=0 kernel="/boot/vmlinuz-5.XX.0-XX.X.X.el9_6.x86_64+rt" args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=3e14acf4-a359-4045-b8fc-990ff83743ec rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81 $tuned_params" root="/dev/mapper/rhel_rt--qe--11-root" initrd="/boot/initramfs-5.XX.0-XX.X.X.el9_6.x86_64+rt.img $tuned_initrd" title="Red Hat Enterprise Linux (5.XX.0-XX.X.X.el9_6.x86_64+rt) 9.6 (Plow)" id="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-5.XX.0-XX.X.X.el9_6.x86_64+rt" index=1 kernel="/boot/vmlinuz-5.XX.0-XX.X.X.el9_6.x86_64" args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=3e14acf4-a359-4045-b8fc-990ff83743ec rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81 $tuned_params" root="/dev/mapper/rhel_rt--qe--11-root" initrd="/boot/initramfs-5.XX.0-XX.X.X.el9_6.x86_64.img $tuned_initrd" title="Red Hat Enterprise Linux (5.XX.0-XX.X.X.el9_6.x86_64) 9.6 (Plow)" id="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-5.XX.0-XX.X.X.el9_6.x86_64" index=2 kernel="/boot/vmlinuz-0-rescue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" args="ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=3e14acf4-a359-4045-b8fc-990ff83743ec rd.lvm.lv=rhel_rt-qe-11/root rd.lvm.lv=rhel_rt-qe-11/swap console=ttyS0,115200n81" root="/dev/mapper/rhel_rt--qe--11-root" initrd="/boot/initramfs-0-rescue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.img" title="Red Hat Enterprise Linux (0-rescue-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX) 9.6 (Plow)" id="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-0-rescue"실시간 커널을 기본 커널로 설정합니다.
$ select a in /boot/vmlinuz-*rt*; do grubby --set-default=$a; break; donetuned-adm:을 사용하여실시간프로필을 적용합니다.$ sudo tuned-adm profile realtime호스트 시스템을 재부팅합니다.
$ sudo reboot
검증
커널 버전 및 튜닝 매개변수를 확인합니다.
$ sudo uname -r 5.XX.0-XX.X.X.el9_6.x86_64+rt$ sudo cat /proc/cmdline BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.XX.0-XX.X.X.el9_6.x86_64+rt root=/dev/mapper/rhel_rt--qe--11-root ro crashkernel=2G-64G:256M,64G-:512M resume=UUID=3e14acf4-a359-4045-b8fc-990ff83743ec 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,2,3,4,5,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