리눅스에서 nice와 renice 명령어는 프로세스의 우선순위를 설정하고 관리하는 데 사용됩니다. CPU 자원을 어떻게 분배할지를 결정하는 중요한 명령어로, 시스템 성능을 최적화하거나 백그라운드에서 실행되는 작업의 우선순위를 조정하는 데 매우 유용합니다. 프로세스의 우선순위는 nice 값으로 정의되며, 값이 낮을수록 높은 우선순위를 가집니다.
nice 명령어
nice 명령어는 새로운 프로세스를 실행할 때 그 프로세스의 우선순위를 설정합니다. 기본적으로 모든 프로세스는 0의 nice 값을 가지지만, nice 명령어를 사용하여 우선순위를 변경할 수 있습니다. nice 값은 -20에서 19 사이의 숫자로 표현되며, -20에 가까울수록 높은 우선순위를, 19에 가까울수록 낮은 우선순위를 의미합니다.
기본 형식:
nice -n [nice 값] [실행할 명령어]
nice 명령어 예제
만약 nice 값을 10으로 설정하여 새로운 프로세스를 실행하고 싶다면 다음과 같이 입력합니다.
user@linux:~$ nice -n 10 python3 myscript.py
위 명령어는 python3 myscript.py 스크립트를 nice 값 10으로 실행하여 CPU 자원을 다른 작업보다 덜 사용하는 상태로 실행합니다.
nice 값이 적용된 프로세스 확인
ps 명령어와 -l 옵션을 사용하면 프로세스의 nice 값을 확인할 수 있습니다.
user@linux:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 5678 1234 0 80 10 - 1438 wait pts/0 00:00:01 python3
여기서 NI 필드는 프로세스의 nice 값을 나타냅니다.
renice 명령어
renice 명령어는 실행 중인 프로세스의 우선순위를 변경하는 데 사용됩니다. nice 명령어가 프로세스를 실행할 때 우선순위를 설정하는 반면, renice는 이미 실행 중인 프로세스의 우선순위를 동적으로 조정할 수 있습니다.
기본 형식:
renice [nice 값] -p [프로세스 ID]
renice 명령어 예제
예를 들어, PID가 5678인 프로세스의 우선순위를 nice 값 -5로 변경하려면 다음과 같이 입력합니다.
user@linux:~$ sudo renice -5 -p 5678
5678 (process ID) old priority 10, new priority -5
이 명령어는 프로세스 5678의 기존 nice 값 10을 -5로 변경합니다. 실행 결과는 변경된 우선순위를 출력하며, sudo 권한이 필요합니다.
특정 사용자나 그룹의 프로세스 우선순위 변경
renice는 프로세스 ID뿐만 아니라 사용자(user)나 그룹(group)의 모든 프로세스 우선순위도 변경할 수 있습니다.
사용자 user1의 모든 프로세스의 우선순위를 15로 설정하려면:
user@linux:~$ sudo renice 15 -u user1
nice와 renice 명령어의 주요 차이점
- nice: 새로운 프로세스를 실행할 때 우선순위를 설정
- renice: 이미 실행 중인 프로세스의 우선순위를 변경
참고사이트
'Linux' 카테고리의 다른 글
[리눅스] iptables 명령어 완벽 가이드 사용법(방화벽 설정) (0) | 2024.10.19 |
---|---|
[리눅스] netcat 명령어 완벽 가이드 사용법(네트워크 디버깅) (0) | 2024.10.19 |
[리눅스] strace 명령어 완벽 가이드 사용법(프로세스 추적) (0) | 2024.10.19 |
[리눅스] nohup 명령어 완벽 가이드 사용법(백그라운드 실행) (1) | 2024.10.19 |
[리눅스] iostat 명령어 완벽 가이드 사용법(디스크 I/O 성능 확인) (0) | 2024.10.18 |
[리눅스] lsof 명령어 완벽 가이드 사용법(네트워크 연결 상태 확인) (0) | 2024.10.18 |
[리눅스] umask 명령어 완벽 가이드 사용법(파일/디렉토리 기본권한 설정) (0) | 2024.10.18 |
[리눅스] sudo -s 명령어 완벽 가이드 사용법(root 쉘로 전환) (1) | 2024.10.16 |