리눅스 Nice (스케줄링에 의한 프로세스 우선순위 변경)

리눅스 시스템은 다중사용자(Multi-User ) 운영체제이며, 다중프로세스처리(Multi-Processing) 운영체제이다. 따라서 여러개의 프로세스가 동시에 실행되어 처리된다. 이때 각 프로세스들 간에는 실행우선순위라는 것이 결정이 되어 있다.

nice 명령어는 많은 프로세스들 사이에 우선순위를 확인하고 우선순위를 변경할 수 있는 명령어이다.

nice값은 -20부터 +19까지 있는데1), 대부분의 프로세스들은 대부분 우선순위 0의 값을 가지며 값이 작을수록 우선 순위가 높다. -n옵션을 쓰지 않으면 디폴트로 10이 쓰임. 일반 유저는 nice값을 증가시킬 수밖에 없지만 root는 nice값을 감소시켜 우선 순위를 높일 수도 있다

프로세스 우선순의 -5의 값으로 실행

nice -5 vi

이미 실행시킨 프로세스의 경우 renice 명령을 사용하여 조절한다.

renice [-n] <priority> [-p] <pid> [<pid>  ...]
renice [-n] <priority>  -g <pgrp> [<pgrp> ...]
renice [-n] <priority>  -u <user> [<user> ...]

nice.jpg

Linux top 명령어 사용방법 에서 볼 수 있다.

특정 유저의 모든 프로세스 설정

/etc/security/limits.conf

<username>  <hard|soft>  priority  <nice value>
tecmint  hard  priority  10

이렇게 하면 된다.

1)
-20 (most favorable scheduling) to 19 (least favorable)

역링크