23.2. 부팅 중 서비스의 우선 순위 변경
systemd 를 사용하면 부팅 프로세스 중에 시작된 서비스의 실시간 우선 순위를 구성할 수 있습니다.
단위 구성 지시문은 부팅 프로세스 중에 서비스의 우선 순위를 변경하는 데 사용됩니다. 부팅 프로세스 우선 순위 변경은 /etc/systemd/system/ 서비스 .service.d/priority.conf의 service 섹션에서 다음 지시문을 사용하여 수행됩니다.
CPUSchedulingPolicy=-
실행된 프로세스의 CPU 스케줄링 정책을 설정합니다. Linux에서 사용할 수 있는 스케줄링 클래스 중 하나를 사용합니다.
other,batch,idle,fifo또는rr. CPUSchedulingPriority=-
실행된 프로세스의 CPU 스케줄링 우선 순위를 설정합니다. 사용 가능한 우선순위 범위는 선택한 CPU 스케줄링 정책에 따라 다릅니다. 실시간 스케줄링 정책의 경우
1(최저 우선 순위)에서99(최고 우선 순위) 사이의 정수를 사용할 수 있습니다.
사전 요구 사항
- 관리자 권한이 있습니다.
- 부팅 시 실행되는 서비스입니다.
프로세스
기존 서비스의 경우 서비스에 대한 보조 서비스 구성 디렉터리 파일을 생성합니다.
# cat <<-EOF > /etc/systemd/system/mcelog.service.d/priority.conf[Service]섹션의 파일에 스케줄링 정책 및 우선 순위를 추가합니다.예를 들면 다음과 같습니다.
[Service] CPUSchedulingPolicy=fifo CPUSchedulingPriority=20 EOFsystemd스크립트 구성을 다시 로드합니다.# systemctl daemon-reload서비스를 다시 시작합니다.
# systemctl restart mcelog
검증
서비스의 우선 순위를 표시합니다.
$ tuna -t mcelog -P출력에는 서비스의 구성된 우선 순위가 표시됩니다.
예를 들면 다음과 같습니다.
thread ctxt_switches pid SCHED_ rtpri affinity voluntary nonvoluntary cmd 826 FIFO 20 0,1,2,3 13 0 mcelog