리눅스 Real-Time Scheduling for user processes, Red Hat Enterprise Linux 7 및 8에서 cgroups v1, systemd 및 SCHED_RR을 사용하여 사용자 프로세스에 대한 실시간 스케줄링을 허용하도록 사용자 슬라이스를 구성하는 방법에 대한 단계별 가이드입니다

리눅스 사용자 슬라이스에 대한 실시간 스케줄링 구성

리눅스 사용자 슬라이스에 대한 실시간 스케줄링은 사용자 슬라이스에 있는 프로세스에 대해 실시간 스케줄링을 적용하는 것입니다. 실시간 스케줄링은 특정 프로세스에게 CPU 사용 우선권을 부여하는 방식으로, 실시간 애플리케이션의 제한된 시간 내 처리를 보장하기 위해 사용됩니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

리눅스에서 사용자 슬라이스는 사용자의 프로세스 집합을 그룹화하는 데 사용되는 개념입니다. 사용자 슬라이스는 각각 고유한 CPU 할당량을 가지고 있으며, 실시간 스케줄링을 구성하면 사용자 슬라이스에 있는 프로세스가 전체 시스템 CPU의 특정 비율을 사용할 수 있습니다.

사전 조건

  • 사용자가 실시간 프로그램을 실행할 수 있는 능력이 있도록 확인합니다. 이를 위해 주로 사용자에 대한 /etc/security/limits.confrtprio 제한을 설정해야 합니다. 예를 들어:
   # grep testuser /etc/security/limits.conf 
   testuser    -   rtprio      90

구성 절차

user.slice 유닛을 구성하기 위한 userslice-config.service 유닛을 생성합니다.

# cat > /etc/systemd/system/userslice-config.service << EOF
[Unit]
BindsTo=user.slice
After=user.slice

[Service]
Type=oneshot
ExecStart=/bin/sh -c "/usr/sbin/sysctl -n kernel.sched_rt_runtime_us > /sys/fs/cgroup/cpu/user.slice/cpu.rt_runtime_us"
RemainAfterExit=yes
EOF

구성 서비스를 자동으로 가져오기 위한 user.slice 유닛의 드랍인을 생성합니다.

# mkdir -p /etc/systemd/system/user.slice.d
# cat > /etc/systemd/system/user.slice.d/config.conf << EOF
[Unit]
Requires=userslice-config.service

[Slice]
CPUAccounting=yes
EOF

변경 사항이 적용되도록 systemd를 다시 로드합니다.

# systemctl daemon-reload

user.slice 유닛을 다시 시작하거나 시스템을 재부팅합니다.

# reboot

testuser 사용자로 로그인하여 이제 일부 실시간 할당이 있는지 확인합니다.

$ grep "cpu,cpuacct" /proc/self/cgroup
8:cpu,cpuacct:/user.slice

$ cat /sys/fs/cgroup/cpu/user.slice/cpu.rt_runtime_us 
950000

$ ./rt_minimal 
Setting scheduling policy to SCHED_RR and priority 90
OK, sleeping indefinitely until the process is killed
^C

원인

  • CPU Accounting이 활성화되면 systemd에서 관리하는 모든 cgroup에 대해 cpu.rt_runtime_us cgroup 속성이 0으로 설정되어 실시간 프로그램 실행이 방지됩니다.

추가 정보

  • 솔루션에는 실시간 스케줄링을 사용하는 프로세스에 대한 예제 소스 코드(rt_minimal.c)가 포함되어 있습니다.

이러한 지침을 환경 및 요구 사항에 맞게 조정하십시오.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

아마존 해외 구매: 서버, 네트워크, 노트북 구매

Amazon Best Sellers Servers

Amazon Best Sellers Networking

Amazon Best Sellers Laptops

위로 스크롤