top실행결과화면에 프로세스들의 우선순위 조정하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,187 조회
- 0 추천
- 목록
본문
top실행결과화면에 프로세스들의 우선순위 조정하기
리눅스 서버는 다중사용자(Multi-User), 다중프로세스(Multi-Process)환경의 운영체제이므로 많은 프로세스들이 동시에 실행되고 있습니다.
이들 프로세스들은 모두 그 우선순위를 가지고 있으며 리눅스 시스템에서는 실행중인 프로세스들의 우선순위를 조절하여 특정 프로세스가 먼저 실행이 되도록 할 수 있습니다.
결론적으로 top을 실행한 후에 NICE값을 조절하여 실행중인 특정 프로세스의 우선순위를 조절할 수 있습니다.
리눅스에서 프로세스들이 가질 수 있는 NICE값의 범위는 -20에서부터 19까지 입니다.
여기서 -20이 가장 우선되는 스케줄링을 하게 되고 19는 가장 최악의 스케줄링을 하게 됩니다.
여기서 스케줄링이란 자원사용에 대한 할당 스케줄링을 의미합니다.
즉, 이 NICE값은 시스템의 자원을 어떻게 할당하고 어떤 프로세스에게 보다 많은 자원을 할당하여 실행 우선권을 줄 것인가를 결정하는 역할을 하는 값입니다.
따라서 top을 실행한 후에 우리는 이 NICE값을 변경하여 특정 프로세스의 우선순위를 변경할 수 있습니다.
즉, 아래의 예는 top을 실행한 후에 특정 프로세스의 NICE값을 변경하기 위하여 r을 입력한 것입니다.
top - 01:10:21 up 6:24, 3 users, load average: 0.83, 0.67, 0.52 Tasks: 97 total, 1 running, 96 sleeping, 0 stopped, 0 zombie Cpu(s): 0.7%us, 4.7%sy, 0.0%ni, 0.0%id, 90.6%wa, 0.7%hi, 3.3%si, 0.0%st Mem: 1033816k total, 985284k used, 48532k free, 46360k buffers Swap: 2096472k total, 4k used, 2096468k free, 804444k cached PID to renice: 2565
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2277 root 20 0 10388 2972 2372 S 4.6 0.3 0:16.39 sshd 2564 root 20 0 5648 1188 948 D 3.7 0.1 0:03.28 tar 2565 root 20 0 2108 600 244 S 1.3 0.1 0:22.09 gzip
1 root 20 0 2008 768 564 S 0.0 0.1 0:01.51 init 2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd |
즉, 위와 같이 gzip프로세스의 PID인 2565를 입력하였습니다.
즉, gzip프로세스의 NICE값을 변경하기 위해서 입니다.
(원래 초기 gzip프로세스의 NICE값은 0임. 초기 디폴트값)
그런 다음 아래와 같이 2565프로세스에 대한 NICE값으로 -20을 입력하였습니다.
즉, 최고 우선순위를 지정한 것입니다.
top - 01:10:21 up 6:24, 3 users, load average: 0.83, 0.67, 0.52 Tasks: 97 total, 1 running, 96 sleeping, 0 stopped, 0 zombie Cpu(s): 0.7%us, 4.7%sy, 0.0%ni, 0.0%id, 90.6%wa, 0.7%hi, 3.3%si, 0.0%st Mem: 1033816k total, 985284k used, 48532k free, 46360k buffers Swap: 2096472k total, 4k used, 2096468k free, 804444k cached Renice PID 2565 to value: -20
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2277 root 20 0 10388 2972 2372 S 4.6 0.3 0:16.39 sshd 2564 root 20 0 5648 1188 948 D 3.7 0.1 0:03.28 tar 2565 root 20 0 2108 600 244 S 1.3 0.1 0:22.09 gzip 1 root 20 0 2008 768 564 S 0.0 0.1 0:01.51 init 2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd |
주의 하실 것은 “Renice PID 2565 to value :”에서 지정할 수 있는 값의 범위는 -20부터 19까지 입니다.
-20이 가장 높은 우선순위를 의미하고, 19는 가장 낮은 우선순위를 의미입니다.
우리는 여기서 gzip프로세스의 NICE값으로 -20을 입력하였습니다.
top - 01:11:31 up 6:25, 3 users, load average: 0.98, 0.75, 0.56 Tasks: 97 total, 2 running, 95 sleeping, 0 stopped, 0 zombie Cpu(s): 21.5%us, 14.7%sy, 0.0%ni, 0.0%id, 60.2%wa, 0.7%hi, 2.9%si, 0.0%st Mem: 1033816k total, 1017316k used, 16500k free, 40204k buffers Swap: 2096472k total, 24k used, 2096448k free, 838812k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2565 root 0 -20 2108 600 244 S 29.2 0.1 0:28.30 gzip
2564 root 20 0 5648 1188 948 R 9.6 0.1 0:08.06 tar 2277 root 20 0 10388 2972 2372 S 4.3 0.3 0:20.05 sshd 203 root 15 -5 0 0 0 S 0.3 0.0 0:00.29 kswapd0 2165 root 20 0 10388 2972 2372 S 0.3 0.3 2:48.84 sshd 2568 root 20 0 2428 1040 836 R 0.3 0.1 0:00.06 top 1 root 20 0 2008 768 564 S 0.0 0.1 0:01.51 init 2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd |
그 결과 위의 예에서 PID 2565인 gzip프로세스의 NICE값이 원래 0이었지만 -20으로 재설정되어 있다는 것을 알 수 있습니다.
그리고 눈 여겨 보실 것은 PR항목(Priority)값이 원래 20에서 0으로 재조정 되었다는 것도 함께 알 수 있습니다.
이쯤에서 top화면에서 볼 수 있는 NI항목(NICE값)과 PR항목(Priority값)의 상관관계에 대해서 알아보겠습니다.
구분
|
PR값(Priority, 우선순위)
|
NI값(NICE)
|
가장 높은 우선순위
|
0
|
-20
|
|
1
|
-19
|
|
2
|
-18
|
|
3
|
-17
|
|
4
|
-16
|
|
5
|
-15
|
|
6
|
-14
|
|
7
|
-13
|
|
8
|
-12
|
|
9
|
-11
|
|
10
|
-10
|
|
11
|
-9
|
|
12
|
-8
|
|
13
|
-7
|
|
14
|
-6
|
|
15
|
-5
|
|
16
|
-4
|
|
17
|
-3
|
|
18
|
-2
|
|
19
|
-1
|
디폴트 우선순위
|
20
|
0
|
|
21
|
1
|
|
22
|
2
|
|
23
|
3
|
|
24
|
4
|
|
25
|
5
|
|
26
|
6
|
|
27
|
7
|
|
28
|
8
|
|
29
|
9
|
|
30
|
10
|
|
31
|
11
|
|
32
|
12
|
|
33
|
13
|
|
34
|
14
|
|
35
|
15
|
|
36
|
16
|
|
37
|
17
|
|
38
|
18
|
가장 낮은 우선순위
|
39
|
19
|
우리는 이중에서 NICE값을 -20부터 19까지 조절하면서 각각의 프로세스의 우선순위 값을 0부터 39까지 조절할 수 있는 것입니다.
위 표의 상관관계를 잘 이해하시기 바랍니다.
이 것은 이 책의 nice명령어와 renice명령어에서도 참고됩니다.
더불어 함께 보시기 바랍니다.
관련자료
-
이전
-
다음