nice란 무엇인가?
리눅스에서 프로세스 우선순위는 'Niceness(나이스 값)'로 표현됩니다. `nice` 명령어는 이 값을 설정하여 프로그램을 실행합니다.
Niceness (나이스 값)의 이해
값이 **클수록 착한(Nice)** 프로세스입니다. 즉, 다른 프로세스에게 자원을 양보합니다.
- 범위: -20 (가장 높은 우선순위/이기적) ~ 19 (가장 낮은 우선순위/양보)
- 기본값: 0 (표준 우선순위)
- 음수 사용: 우선순위를 높이는 것(음수 값)은 루트(root) 권한이 필요합니다.
주요 옵션 (Shell)
우선순위 값(`-n`)과 실행할 명령어를 조합하여 사용합니다.
1. 우선순위 지정 실행
2. 도움말
생성된 명령어:
명령어를 조합해 보세요.
설명:
`nice` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 시나리오 예시
실무에서 시스템 부하를 관리하기 위해 사용하는 패턴입니다.
낮은 우선순위로 백업 실행 (자원 양보)
nice -n 10 tar -czf backup.tar.gz /var/www
대용량 압축(`tar`) 작업을 수행할 때, 웹 서버 등 다른 중요 서비스가 느려지지 않도록 나이스 값을 10으로 높여(양보) 실행합니다.
매우 낮은 우선순위로 실행
nice -n 19 ./heavy_computation.sh
최대치인 19를 주어, 시스템이 한가할 때만 CPU를 사용하도록 합니다.
높은 우선순위로 실행 (루트 권한 필요)
sudo nice -n -10 ./critical_service
중요한 프로세스에 높은 우선순위(-10)를 부여하여 CPU를 선점하게 합니다. 음수 값 설정은 `sudo`가 필요합니다.
표기법 주의
nice -n -5 command
옵션 `-`와 음수 `-`가 만나면 `-10` 처럼 보일 수 있습니다. `nice -10`은 `nice -n 10`(양수 10)의 옛 표기법이므로 혼동을 피하기 위해 `-n`을 명시하는 것이 좋습니다.
설치
nice는 'GNU Coreutils'에 포함된 기본 명령어로, 거의 모든 리눅스 배포판에 기본 설치되어 있습니다.
설치 확인
별도 설치 없이 바로 사용할 수 있습니다.
팁 & 주의사항
nice vs renice
두 명령어의 차이점을 명확히 알아두세요.
- nice: 명령어를 **새로 시작할 때** 우선순위를 부여합니다.
- renice: **이미 실행 중인** 프로세스(PID)의 우선순위를 변경합니다.
- 확인 방법: `top`이나 `htop`에서 `NI` 컬럼을 보면 현재 프로세스의 nice 값을 확인할 수 있습니다.