9장. 실시간 작업 실행에 rteval 컨테이너 사용
Red Hat Enterprise Linux (RHEL) for Real Time의 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 버전 9.6 이상에서 실행되고 있습니다.
-
tuned
및tuned-profiles-realtime
패키지가 설치됩니다. -
tuned
서비스가 실행 중입니다. -
podman
애플리케이션이 설치되어 실행 중입니다.
프로세스
필수 패키지를 설치합니다.
sudo dnf install rteval kernel-rt podman -y
$ sudo dnf install rteval kernel-rt podman -y
Copy to Clipboard Copied! 설치된 커널을 확인합니다.
sudo grubby --info=ALL
$ 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"
Copy to Clipboard Copied! 실시간 커널을 기본 커널로 설정합니다.
select a in /boot/vmlinuz-*rt*; do grubby --set-default=$a; break; done
$ select a in /boot/vmlinuz-*rt*; do grubby --set-default=$a; break; done
Copy to Clipboard Copied! tuned-adm
:을 사용하여실시간
프로필을 적용합니다.sudo tuned-adm profile realtime
$ sudo tuned-adm profile realtime
Copy to Clipboard Copied! 호스트 시스템을 재부팅합니다.
sudo reboot
$ sudo reboot
Copy to Clipboard Copied!
검증
커널 버전 및 튜닝 매개변수를 확인합니다.
sudo uname -r
$ sudo uname -r 5.XX.0-XX.X.X.el9_6.x86_64+rt
Copy to Clipboard Copied! 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
$ 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
Copy to Clipboard Copied!