강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

NICE값을 변경하여 프로세스들의 실행속도를 조절할 수있는 nice활용실무: 가장 높은 우선순위 또는 가장 낮은 우선순위로 프로세스 실행하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

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값을 지정하여 실행하는 명령어의 우선순위를 원하는 값으로 직접 설정할 수 있었다.

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,156 명
  • 현재 강좌수 :  36,513 개
  • 현재 접속자 :  269 명