Linux 프로세스 우선순위 제어: nice와 renice 명령어

nice 명령어

nice 명령어는 프로그램을 실행하기 전에 프로세스의 우선순위를 조정할 수 있게 해주는 도구입니다. 조정된 우선순위로 명령어를 실행하며, 명령어를 지정하지 않으면 현재 우선순위 값을 출력합니다.

우선순위 값의 범위는 -20에서 19까지입니다. 값이 작을수록 높은 우선순위를 의미하며, 기본값은 0입니다.

권한 제한: root 사용자는 음수 우선순위 설정과 기존 프로세스의 우선순위 감소가 가능하지만, 일반 사용자는 양수 우선순위만 설정할 수 있으며 기존 프로세스의 우선순위 값만 증가시킬 수 있습니다.

사용법

nice [옵션] [명령어 [인수]]

주요 옵션

  • -n, --adjustment=N: 우선순위에 정수 N 값을 더함 (상대적 우선순위 지정)
  • --help: 도움말 표시
  • --version: 버전 정보 표시

renice 명령어

renice는 이미 실행 중인 하나 이상의 프로세스 우선순위를 변경하는 명령어입니다.

사용법

renice [-n] 우선순위 [-g|u|p] 식별자...

주요 옵션

  • -n, --priority: 새로운 우선순위 값 지정 (첫 번째 인자로 사용)
  • -g, --pgrp <pgid>: 프로세스 그룹 ID로 식별
  • -u, --user <name_or_uid>: 사용자 이름 또는 UID로 식별
  • -p, --pid <pid>: 프로세스 ID로 식별 (기본값)
  • -h, --help: 도움말 표시
  • -V, --version: 버전 정보 표시

실제 사용 예시

예제 1: nice로 프로세스 시작하기

$ nice -n 5 vim test.txt
[1]+  중지됨               nice -n 5 vim test.txt

$ ps -aux | grep vim
user     12423  1.1  0.2 151796  5368 pts/0    TN   16:22   0:00 vim test.txt
user     12431  0.0  0.0 112724   988 pts/0    S+   16:22   0:00 grep --color=auto vim

$ top -p 12423
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
12423 user       25   5  151796   5368   2764 T   0.0  0.3   0:00.08 vim

예제 2: renice로 실행 중인 프로세스 우선순위 변경

$ renice -n 10 -p 12423
12423 (프로세스 ID) 기존 우선순위: 5, 새로운 우선순위: 10

$ top -p 12423
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND    
12423 user       30  10  151796   5368   2764 T   0.0  0.3   0:00.08 vim

예제 3: 일반 사용자의 우선순위 조정 제한

$ renice -8 -p 12423
renice: 12423 우선순위 설정 실패: 권한 부족

$ renice -11 -p 12423
renice: 12423 우선순위 설정 실패: 권한 부족

$ renice 8 -p 12423
renice: 12423 우선순위 설정 실패: 권한 부족

$ renice 11 -p 12423
12423 (프로세스 ID) 기존 우선순위: 10, 새로운 우선순위: 11

결과 분석

위의 테스트 결과를 통해 확인할 수 있듯이, 비특권 사용자는 우선순위 값을 낮추거나(우선순위 향상) 음수 값으로 설정하는 것이 불가능합니다. 그러나 현재 우선순위보다 높은 값(우선순위 하락)으로만 조정할 수 있습니다. root 권한이 있다면 음수 우선순위 설정 등 모든 조정이 가능해집니다.

태그: linux process-management nice renice priority

5월 27일 06:43에 게시됨