시스템(Linux)

renice에 대해 알아보겠습니다.

forward error correction Circle 2024. 11. 22. 08:46
반응형

Ⅰ. renice 명령어란 ?

 실행 중인 프로세스의 우선순위(Nice 값)를 조정하여 CPU 자원의 분배를 효율적으로 관리하는 데 사용됩니다. 이를 통해 시스템 성능을 최적화하거나 특정 작업의 중요도를 동적으로 변경할 수 있습니다.

Ⅱ. renice 주요 목적

ⅰ. 시스템 성능 최적화
CPU 리소스를 많이 소비하는 프로세스의 우선순위를 낮추어, 다른 중요한 작업들이 원활히 수행되도록 합니다.
Ex) 백그라운드에서 실행 중인 백업 작업의 우선순위를 낮춤.
ⅱ. 중요한 작업에 CPU 우선권 부여
특정 작업이 빠르게 완료되도록 우선순위를 높여 CPU 사용을 집중시킵니다.
Ex) 실시간 데이터 처리 애플리케이션의 우선순위를 높임.
ⅲ. 시스템 안정성 유지
비정상적으로 CPU를 점유하는 프로세스의 우선순위를 낮춰 시스템 전체의 응답성을 유지합니다.
Ex) 무한 루프에 빠진 프로세스의 우선순위를 낮춰 다른 프로세스에 영향을 최소화.
ⅳ. 멀티태스킹 환경에서의 자원 관리
여러 프로세스가 동시에 실행될 때, 중요한 프로세스와 덜 중요한 프로세스를 구분하여 자원을 효율적으로 분배합니다.
Ex) 사용자 인터페이스(UI)와 백엔드 작업 간의 우선순위 조정.
ⅴ. 동적 자원 관리
이미 실행 중인 프로세스에 대해 실시간으로 우선순위를 변경하여 요구 사항에 빠르게 대응합니다.
Ex) 시스템 부하가 높아진 경우 덜 중요한 작업의 우선순위를 낮춤.

Ⅲ. 프로세스 우선순위 이해

ⅰ. Nice 값 (Niceness)
프로세스 우선순위에 영향을 주는 값으로, -20부터 19까지 설정 가능합니다.
낮은 값일수록 높은 우선순위를 가지며, -20이 가장 높은 우선순위, 19가 가장 낮은 우선순위를 의미합니다.
기본값은 0이며, 일반 사용자는 기본값보다 높은 우선순위(낮은 nice 값)를 설정할 수 없습니다.
ⅱ. 우선순위 조정
CPU 자원을 더 많이 사용하고 싶은 프로세스는 낮은 nice 값을,
시스템에 부하를 적게 주고 싶은 프로세스는 높은 nice 값을 사용합니다.

Ⅳ. 실용적인 활용 예시

ⅰ. 백그라운드 작업의 부하 감소
백그라운드로 실행되는 데이터 백업 프로세스의 우선순위를 낮춰 CPU가 다른 중요한 작업을 우선 처리하도록 함:

renice 15 -p <backup_PID>

 

ⅱ. 중요 작업의 속도 향상
비디오 인코딩 작업처럼 CPU 집약적인 작업의 우선순위를 높여 처리 속도를 개선:

sudo renice -5 -p <encoding_PID>

 

ⅲ. 시스템 응답성 개선
특정 프로세스가 CPU를 과도하게 점유할 때 우선순위를 낮춰 시스템의 전체 응답성을 유지:

sudo renice 19 -p <high_CPU_PID>

 

Ⅴ. renice 명령어 사용법

ⅰ. 기본 사용법

renice [옵션]  <new_nice_value>-p <PID>

<new_nice_value> : 설정할 새로운 nice 값.
-p <PID> : 우선순위를 변경할 프로세스 ID.

주요 옵션
-p: 특정 프로세스 ID(PID)의 우선순위를 변경.
-g: 특정 그룹 ID(GID)의 모든 프로세스 우선순위를 변경.
-u: 특정 사용자의 모든 프로세스 우선순위를 변경.


ⅱ. 사용 예시
 1) 특정 프로세스의 우선순위 변경
PID가 1234인 프로세스의 우선순위를 10으로 설정:

renice 10 -p 1234


2) 여러 프로세스 우선순위 변경
PID가 1234와 5678인 프로세스의 우선순위를 15로 설정

renice 15 -p 1234 -p 5678


3) 특정 그룹의 모든 프로세스 우선순위 변경
그룹 ID 1000의 모든 프로세스 우선순위를 5로 설정

renice 5 -g 1000


4) 특정 사용자의 모든 프로세스 우선순위 변경
사용자 john의 모든 프로세스 우선순위를 10으로 설정

renice 10 -u john


5) 현재 실행 중인 프로세스 확인 후 변경
현재 프로세스 확인

ps -eo pid,ni,comm

PID로 우선순위 변경

renice -5 -p 4567

Ⅵ. renice 제한사항 및 권한

 1) 일반 사용자 제한
일반 사용자는 자신이 실행한 프로세스에만 nice 값을 조정할 수 있으며, 기본값(0)보다 높은 우선순위(낮은 nice 값)로 설정할 수 없습니다.
Ex)  일반 사용자는 -10로 설정할 수 없고, 10처럼 nice 값을 높이는 것만 가능.
 2) 관리자 권한 필요
시스템 관리자는 root 권한으로 모든 프로세스의 nice 값을 자유롭게 설정할 수 있습니다.
관리자 권한으로 실행:

sudo renice -5 -p 1234

Ⅶ. renice 실습 예제

1. 우선순위 확인
현재 실행 중인 모든 프로세스의 우선순위(Nice 값) 확인

ps -eo pid,ni,comm


출력 예

 PID  NI COMMAND
   123   0 bash
   456   0 apache2
   789  10 backup_script


2. 특정 프로세스의 우선순위 변경
PID 456의 우선순위를 -5로 변경

sudo renice -5 -p 456


3. 변경 결과 확인
다시 ps 명령어로 확인

ps -eo pid,ni,comm


출력 예

  PID  NI COMMAND
   123   0 bash
   456  -5 apache2
   789  10 backup_script


Ⅷ. renice와 관련된 명령어
 1) nice : 새로 실행하는 프로세스의 초기 우선순위를 설정합니다.

nice -n 10 command


 2) ps : 프로세스 정보를 확인하는 명령어로, renice와 함께 사용됩니다.

ps -eo pid,ni,comm


 3) top 또는 htop : 실행 중인 프로세스의 실시간 정보를 확인하며, 여기서 직접 우선순위를 변경할 수 있습니다.
     top에서 우선순위 변경:
     ⅰ. 실행: top
     ⅱ.  대상 프로세스 선택: r 입력 후 PID 입력
     ⅲ. 새로운 nice 값 입력

반응형