chrt는 일정 정책 변경에 영향을 미치지 않습니다.

chrt는 일정 정책 변경에 영향을 미치지 않습니다.

프로세스의 스케줄링 정책을 변경하여 이를 수행하고 싶었지만 chrt아래와 같이 systemd 프로세스에는 아무런 영향을 미치지 않습니다. 이것은 예이며 다른 프로세스도 시도했습니다. 아직 SCHED_OTHER입니다.

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   1862 mahmood   20   0   24980  11908   9768 S   5,9   0,1   0:00.09 systemd


$ sudo chrt -p 1862
pid 1862's current scheduling policy: SCHED_OTHER
pid 1862's current scheduling priority: 0
$ sudo chrt -f -p 1862
pid 1862's current scheduling policy: SCHED_OTHER
pid 1862's current scheduling priority: 0
$ sudo chrt -p 1862
pid 1862's current scheduling policy: SCHED_OTHER
pid 1862's current scheduling priority: 0

이것에 대한 생각이 있나요?

답변1

$ sudo chrt -f -p 1862

지침에 따르면 chrt를 사용하고 있지 않습니다 man chrt.

chrt -r -p 우선순위 PID

스케줄링 정책을 변경할 때 우선순위 매개변수는 다음과 같습니다.아니요임의로 선택할 수 있는. chrt --max허용 가능한 값의 범위를 확인하는 데 사용됩니다 .

$ chrt -p 21549
pid 21549's current scheduling policy: SCHED_OTHER
pid 21549's current scheduling priority: 0
$ chrt -f -p 10 21549
$ chrt -p 21549
pid 21549's current scheduling policy: SCHED_FIFO
pid 21549's current scheduling priority: 10

chrt -o -p 0 21549원래 SCHED_OTHER 정책 + 우선순위를 복원하는 데 사용됩니다 .

답변2

나쁜 소식: 아마도 chrt버그일 가능성이 높습니다.

sudo strace -e /sched -o /tmp/strace chrt -f -p 94495

쌍의 시스템 호출만 표시 sched_getattr하고 쌍의 시스템 호출은 표시하지 않아도 sched_setattr됩니다 .

cat /tmp/strace
sched_getattr(94495, {size=56, sched_policy=SCHED_OTHER, sched_flags=0, sched_nice=0, sched_priority=0, sched_runtime=0, sched_deadline=0, sched_period=0, sched_util_min=0, sched_util_max=0}, 56, 0) = 0
+++ exited with 0 +++

그래서 설정하려고도 하지 않았습니다.

관련 정보