-
sha1sum /dev/zero &의 여러 인스턴스를 시작한 다음 nice 레벨이 10 인 추가 인스턴스 하나를 시작합니다.
바쁜 시스템을 시뮬레이션하기 위해 여러 sha1sum 프로세스를 시작합니다. 그런 다음, 의도적으로 낮은 우선 순위 (더 높은 nice 값) 로 하나를 시작하여 효과를 관찰합니다.
먼저 세 개의 일반 인스턴스를 시작합니다 (원하는 경우 CPU 코어 수를 기준으로 조정하되, 최소한 가상 프로세서 수만큼 경쟁을 생성합니다).
for i in {1..3}; do sha1sum /dev/zero & done
다음으로, nice 레벨이 10 인 네 번째 인스턴스를 시작합니다. 이 프로세스는 다른 프로세스보다 낮은 우선 순위를 갖습니다.
nice -n 10 sha1sum /dev/zero &
다음과 유사한 출력이 표시되어 백그라운드 프로세스의 PID 를 나타냅니다.
[1] 5443
[2] 5444
[3] 5445
[4] 5446
(참고: 출력의 PID 값은 다를 수 있습니다.)
-
ps 및 pgrep 명령을 사용하여 각 프로세스의 PID, CPU 사용률 (%), nice 값 및 실행 파일 이름을 표시합니다.
%CPU 및 NI 열을 관찰합니다. nice 값이 10 인 인스턴스는 스케줄러가 CPU 시간을 덜 할당하므로 다른 인스턴스보다 낮은 CPU 사용률 (%) 을 표시해야 합니다.
ps -o pid,pcpu,nice,comm $(pgrep sha1sum)
NI 값이 10인 프로세스를 찾습니다. %CPU는 다른 프로세스보다 눈에 띄게 낮아야 합니다.
PID %CPU NI COMMAND
5443 56.8 0 sha1sum
5444 58.0 0 sha1sum
5445 56.5 0 sha1sum
5446 6.7 10 sha1sum
(참고: 정확한 %CPU 값은 시스템 부하 및 코어 수에 따라 다르지만, nice 10인 프로세스는 더 적은 CPU 시간을 가져야 합니다.)
-
sudo renice 명령을 사용하여 일반 프로세스 중 하나의 nice 레벨을 5 로 변경합니다.
renice 명령을 사용하면 이미 실행 중인 프로세스의 nice 값을 변경할 수 있습니다. 일반 프로세스 (nice 값 0) 중 하나를 nice 값 5 로 변경하여 이를 시연합니다.
먼저, 이전 ps 명령의 출력에서 nice 값이 0 인 sha1sum 프로세스 중 하나의 PID 를 식별합니다. 위의 예에서 첫 번째 프로세스 (PID 5443) 를 사용해 보겠습니다.
sudo renice -n 5 <PID_of_regular_process>
<PID_of_regular_process>를 식별한 실제 PID 로 바꿉니다. 예를 들어:
sudo renice -n 5 5443
우선 순위 변경을 확인하는 출력이 표시되어야 합니다.
5443 (process ID) old priority 0, new priority 5
-
ps 및 pgrep 명령을 반복하여 CPU 사용률 (%) 및 nice 레벨을 표시합니다.
nice 값을 수정한 프로세스의 CPU 사용량 변화를 관찰합니다. nice 값 5 인 프로세스는 이제 nice 값 0 인 프로세스보다 약간 낮은 CPU 사용량을 가져야 하지만, nice 값 10 인 프로세스보다는 높아야 합니다.
ps -o pid,pcpu,nice,comm $(pgrep sha1sum)
수정된 프로세스의 NI 값이 이제 5이고 CPU 사용량이 새 우선 순위 레벨을 반영하는 것을 볼 수 있습니다.
PID %CPU NI COMMAND
5443 55.4 5 sha1sum
5444 67.2 0 sha1sum
5445 67.1 0 sha1sum
5446 7.5 10 sha1sum
(참고: 정확한 %CPU 값은 다를 수 있지만, 낮은 nice 값 (더 높은 우선 순위) 을 가진 프로세스가 더 많은 CPU 시간을 얻는 것을 관찰해야 합니다.)