NICE값을 변경하여 프로세스들의 실행속도를 조절할 수있는 nice활용실무: 가장 높은 우선순위 또는 가장 낮은 우선순위로 프로세스 실행하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 1,338 조회
- 0 추천
- 목록
본문
NICE값을 변경하여 프로세스들의 실행속도를 조절할 수있는 nice활용실무: 가장 높은 우선순위 또는 가장 낮은 우선순위로 프로세스 실행하기
NICE값을 지정하지 않고 일반적인 방법으로 프로세스를 실행하면 NICE값은 기본값으로 0이 된다.
하지만 특정프로세스를 실행하면서 원하는 NICE값을 지정하여 실행할 수 있다.
만약 아래의 예는 find명령어를 실행하면서 NICE값으로 -20을 설정한 예이다.
즉, 아래의 예와 같이 “find / -name access_log”를 실행하면 NICE값은 -20을 주어 실행하였다.
NICE값이 -20이면 우선순위는 0이 되어 가장 높은 우선순위를 지정하여 실행한 것이 된다.
결론적으로 자원사용량이 늘어나서 실행속도가 빨라진다.
[root@sulinux ~]# nice -n -20 find / -name access_log /var/log/httpd/access_log /var/log/cups/access_log
|
위에서 실행시킨 명령어의 우선순위와 NICE값을 확인하기 위하여 top명령어를 실행해 보았다.
top - 03:14:13 up 27 min, 2 users, load average: 0.22, 0.05, 0.02 Tasks: 82 total, 2 running, 80 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 3.7%sy, 0.0%ni, 0.0%id, 96.3%wa, 0.0%hi, 0.0%si, Mem: 1033816k total, 150232k used, 883584k free, 17916k buffers Swap: 2096472k total, 0k used, 2096472k free, 58896k cached
PID USER PR NI VIRT S %CPU %MEM TIME+ SWAP CODE COMMAND 2086 root 0 -20 5756 R 3.7 0.1 0:00.85 4552 156 find
525 root 15 -5 0 S 0.3 0.0 0:00.03 0 0 kjournald 1 root 20 0 2008 S 0.0 0.1 0:01.50 1240 124 init 2 root 15 -5 0 S 0.0 0.0 0:00.00 0 0 kthreadd 3 root RT -5 0 S 0.0 0.0 0:00.00 0 0 migration/0 4 root 15 -5 0 S 0.0 0.0 0:00.05 0 0 ksoftirqd/0 5 root RT -5 0 S 0.0 0.0 0:00.00 0 0 watchdog/0 6 root 15 -5 0 S 0.0 0.0 0:00.04 0 0 events/0 7 root 15 -5 0 S 0.0 0.0 0:00.00 0 0 khelper |
즉, 위의 예에서 find명령어의 실행된 PR값과 NI값을 보기 바란다.
NI값이 -20이기 때문에 PR값이 0으로 실행되어 가장높은 우선순위를 할당받게 된 것이다.
이번에는 앞의 예와 반대의 경우로서 가장낮은 우선순위로 특정명령어를 실행하는 예를 보도록 하자. 이렇게 하기 위해서는 가장낮은 NICE값인 19를 지정하여 실행하면 된다.
다음 예를 보자.
[root@sulinux ~]# nice -n 19 find / -name access_log /var/log/httpd/access_log /var/log/cups/access_log
|
이렇게 실행한 다음 우선순위와 NICE값을 확인하기 위하여 다음과 같이top을 실행하였다.
top - 03:36:33 up 50 min, 2 users, load average: 0.00, 0.01, 0.00 Tasks: 82 total, 2 running, 80 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 28.4%sy, 12.2%ni, 58.1%id, 0.0%wa, 0.0%hi, 1.4%si, Mem: 1033816k total, 243940k used, 789876k free, 91008k buffers Swap: 2096472k total, 0k used, 2096472k free, 58996k cached
PID USER PR NI VIRT S %CPU %MEM TIME+ SWAP CODE COMMAND 2156 root 39 19 5752 R 54.1 0.1 0:00.55 4552 156 find
1992 root 20 0 10240 S 1.0 0.3 0:00.43 7288 452 sshd 2155 root 20 0 2428 R 1.0 0.1 0:00.31 1388 60 top 1 root 20 0 2008 S 0.0 0.1 0:01.50 1240 124 init 2 root 15 -5 0 S 0.0 0.0 0:00.00 0 0 kthreadd |
위의 결과에서 find프로세스는 PR값이 39이며, NI값은 19이다.
즉, NICE값을 19로 주어서 실행한 결과 우선순위가 39로 설정되었다는 것을 알 수 있다.
즉 앞의 표에서 말한 바와 같이 우선순위가 39이면 가장 낮은 우선순위이며 자원할당 우선순위가 가장 낮다는 의미가 된다.
이상과 같이 특정명령어를 실행하면서 NICE값을 지정하여 실행하는 명령어의 우선순위를 원하는 값으로 직접 설정할 수 있었다.
관련자료
-
이전
-
다음