웹사이트 검색

초보자를 위한 Linux chrt 명령 자습서(예제 5개)


이 페이지에서

  1. Linux chrt 명령
  2. Q1. chrt 명령을 사용하는 방법?\n
  3. Q2. chrt에 최소/최대 유효 우선 순위를 표시하는 방법은 무엇입니까?\n
  4. Q3. 일정 정책을 SCHED_BATCH로 설정하는 방법은 무엇입니까?\n
  5. Q4. 일정 정책을 SCHED_FIFO로 설정하는 방법은 무엇입니까?\n
  6. Q5. 일정 정책을 SCHED_OTHER로 설정하는 방법은 무엇입니까?\n
  7. 결론

프로세스는 실행 중인 Linux 시스템의 핵심을 형성합니다. 프로그램이 프로세스로 변환될 때(실행될 때) 많은 속성이 설정됩니다. 경우에 따라 런타임에 이러한 특성을 변경해야 할 수 있습니다. 이 작업을 수행할 수 있는 명령줄 도구 chrt가 있습니다.

이 자습서에서는 이해하기 쉬운 몇 가지 예를 통해 이 유틸리티에 대해 설명합니다. 그러나 그 전에 이 기사의 모든 예제가 Ubuntu 18.04 LTS 시스템에서 테스트되었음을 언급할 가치가 있습니다.

리눅스 chrt 명령

위의 소개 섹션에서 이미 언급했듯이 chrt 명령을 사용하면 프로세스의 실시간 속성을 조작할 수 있습니다. 구문은 다음과 같습니다.

chrt [options] -p [prio] pid

도구 매뉴얼 페이지에서 설명하는 방법은 다음과 같습니다.

       chrt sets or retrieves the real-time scheduling attributes of an exist?
       ing pid, or runs command with the given attributes.  Both  policy  (one
       of  SCHED_OTHER,  SCHED_FIFO, SCHED_RR, SCHED_BATCH, or SCHED_IDLE) and
       priority can be set and retrieved.

       The SCHED_BATCH policy is supported since Linux 2.6.16.  The SCHED_IDLE
       policy is supported since Linux 2.6.23.

       The  SCHED_RESET_ON_FORK  flag  for policies SCHED_RR and SCHED_FIFO is
       supported since Linux 2.6.31.

다음은 chrt 명령이 작동하는 방식에 대한 좋은 아이디어를 제공하는 몇 가지 Q&A 스타일의 예입니다.

Q1. chrt 명령을 사용하는 방법?

일정 정책이나 gedit 프로세스의 우선 순위를 조작하는 데 관심이 있다고 가정합니다. 따라서 가장 먼저 해야 할 일은 이 프로세스의 프로세스 ID를 얻는 것입니다. 이는 pidof 명령을 사용하여 수행할 수 있습니다.

pidof gedit

예를 들어 내 시스템에서 위의 명령은 출력으로 pid 6063을 제공했습니다. 이제 gedit 프로세스에 대한 현재 일정 정책 및 우선 순위를 검색하려면 다음과 같은 방식으로 chrt를 사용하십시오.

chrt -p 6063

이 명령이 내 시스템에서 생성한 출력은 다음과 같습니다.

pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0

Q2. chrt에 최소/최대 유효 우선 순위를 표시하는 방법은 무엇입니까?

이것은 -m 명령줄 옵션을 사용하여 수행할 수 있습니다.

chrt -m

예를 들어, 우리 시스템에서 위의 명령은 다음과 같은 출력을 생성했습니다.

SCHED_OTHER min/max priority    : 0/0
SCHED_FIFO min/max priority    : 1/99
SCHED_RR min/max priority    : 1/99
SCHED_BATCH min/max priority    : 0/0
SCHED_IDLE min/max priority    : 0/0

스케줄링 정책을 설정할 때 우선 순위 설정을 위해 이 값을 참조해야 합니다.

Q3. 일정 정책을 SCHED_BATCH로 설정하는 방법은 무엇입니까?

이것은 -b 명령줄 옵션을 사용하여 수행할 수 있습니다.

예를 들어:

chrt -b -p 0 6063

이제 다음 명령을 사용하여 gedit에 대한 일정 정책을 다시 확인하면:

chrt -p 6063

변경 사항이 적용되었음을 나타내는 다음과 유사한 출력이 표시되어야 합니다.

pid 6063's current scheduling policy: SCHED_BATCH
pid 6063's current scheduling priority: 0

Q4. 일정 정책을 SCHED_FIFO로 설정하는 방법은 무엇입니까?

이것은 -f 명령줄 옵션을 사용하여 수행할 수 있습니다.

chrt -f -p 20 6063

이전 Q&A에서 했던 것처럼 chrt -p 명령을 사용하여 변경 사항을 교차 검증할 수 있습니다. -f 명령줄 옵션을 사용하려면 루트 권한이 필요할 수 있습니다.

Q5. 일정 정책을 SCHED_OTHER로 설정하는 방법은 무엇입니까?

이것은 -o 명령줄 옵션을 사용하여 수행할 수 있습니다.

chrt -o -p 0 6063

확인하려면 chrt -p 명령을 사용하십시오.

chrt -p 6063

내 경우의 출력은 다음과 같습니다.

pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0

결론

동의합니다. chrt 명령은 매일 사용할 수 있는 도구가 아닙니다. 젠장, 시스템 관리를 시작하거나 커널 스케줄링 관련 작업을 하기 전까지는 필요하지 않을 수도 있습니다. 그러나 적어도 그러한 도구가 존재한다는 것을 아는 것은 가치가 있습니다. chrt에 대한 자세한 내용은 man 페이지를 참조하십시오.