프로세스 스케줄링 조정

Red Hat Enterprise LinuxBeginner
지금 연습하기

소개

이 챌린지에서는 리눅스 시스템의 프로세스 스케줄링 관리 방법을 살펴봅니다. 프로세스 스케줄링은 어떤 프로세스가 CPU 를 얼마나 오랫동안 사용할지 결정하는 운영체제의 핵심 기능입니다. 시스템 관리자는 프로세스의 우선순위를 조정하여 이러한 스케줄링에 영향을 줄 수 있습니다. 여러분은 시스템 성능을 최적화하고 중요한 애플리케이션이 필요한 자원을 확보할 수 있도록 돕는 필수 기술인 nicerenice 명령어를 사용하여 프로세스 우선순위를 제어하는 방법을 실습하게 됩니다.

이 콘텐츠는 가이드 랩과 달리 제공되는 단계를 단순히 따라가는 것이 아니라, 스스로 과제를 해결해야 하는 챌린지입니다. 챌린지는 다소 어려울 수 있습니다. 해결이 어렵다면 Labby 와 논의하거나 솔루션을 확인하세요. 과거 데이터에 따르면 이 챌린지는 초급 수준이며 98%의 통과율을 기록하고 있습니다. 학습자들로부터 100%의 긍정적인 평가를 받았습니다.

사용자 정의 우선순위로 프로세스 시작하기

리눅스에서 모든 프로세스는 스케줄링 우선순위에 영향을 주는 "nice" 값을 가집니다. 이 값의 범위는 -20(가장 높은 우선순위) 에서 19(가장 낮은 우선순위) 까지입니다. nice 명령어를 사용하면 특정 nice 값을 지정하여 새 명령을 실행할 수 있습니다. 프로세스의 우선순위를 높이기 위해 음수 nice 값을 설정하는 것은 root 사용자 (또는 sudo 권한이 있는 사용자) 만 가능하다는 점에 유의하세요.

과제

  • nice 명령어를 사용하여 새로운 sleep 600 프로세스를 백그라운드에서 시작하세요.
  • 새 프로세스에 -10의 nice 값을 부여하여 높은 우선순위를 할당하세요.
  • ps 명령어를 사용하여 새 프로세스의 우선순위를 확인하세요.

요구 사항

  • 실행할 명령어는 sleep 600입니다.
  • 프로세스는 -10의 nice 값으로 시작되어야 합니다.
  • 음수 nice 값을 할당하려면 반드시 sudo를 사용해야 합니다.
  • 터미널을 계속 사용할 수 있도록 프로세스를 백그라운드에서 실행해야 합니다.

예시

프로세스를 시작한 후, ps -e -o pid,ni,comm | grep sleep 명령의 결과에서 sleep 프로세스의 NI(nice) 값이 -10으로 표시되어야 합니다. PID 값은 환경에 따라 다를 수 있습니다.

ps -e -o pid,ni,comm | grep sleep
   2250 -10 sleep

또한 ps -e -o pid,ni,comm을 사용하여 모든 프로세스와 해당 nice 값을 확인할 수 있습니다.

  PID  NI COMMAND
    1   0 systemd
 2188   0 bash
 2250 -10 sleep
✨ 솔루션 확인 및 연습

renice 를 사용하여 실행 중인 프로세스의 우선순위 조정하기

이미 실행 중인 프로세스의 우선순위를 변경해야 할 때가 있습니다. 이 경우 renice 명령어를 사용합니다. nice와 마찬가지로 프로세스의 우선순위를 높이려면 (더 낮거나 더 큰 음수 nice 값 설정) sudo 권한이 필요합니다. 또한 root와 같이 다른 사용자가 소유한 프로세스의 우선순위를 변경할 때도 sudo가 필요합니다.

과제

  • 이전 단계에서 시작한 sleep 600 프로세스의 프로세스 ID(PID) 를 찾으세요.
  • renice 명령어를 사용하여 해당 프로세스의 nice 값을 5로 변경하여 우선순위를 낮추세요.
  • ps 명령어를 사용하여 새로운 우선순위 레벨을 확인하세요.

요구 사항

  • 대상 프로세스는 이전 단계에서 실행한 sleep 600 프로세스입니다.
  • 새로운 nice 값은 5여야 합니다.
  • 해당 프로세스는 sudo로 시작되어 root 소유이므로, 우선순위를 변경할 때 반드시 sudo를 사용해야 합니다.

예시

renice 명령어를 실행한 후, ps -e -o pid,ni,comm | grep sleep의 결과에서 sleep 프로세스의 새로운 NI 값이 5로 표시되어야 합니다.

ps -e -o pid,ni,comm | grep sleep
   2250   5 sleep

ps -e -o pid,ni,comm을 사용하여 모든 프로세스를 확인할 수도 있습니다.

  PID  NI COMMAND
    1   0 systemd
 2188   0 bash
 2250   5 sleep
✨ 솔루션 확인 및 연습

요약

이 챌린지에서는 리눅스 시스템에서 프로세스 스케줄링 우선순위를 조정하는 기본 방법을 배웠습니다. nice 명령어를 사용하여 특정 우선순위로 새 프로세스를 실행하는 방법과 renice 명령어를 사용하여 이미 실행 중인 프로세스의 우선순위를 수정하는 방법을 실습했습니다. 또한 프로세스의 우선순위를 높이는 작업 (음수 nice 값 설정) 에는 관리자 권한 (sudo) 이 필요하다는 사실도 확인했습니다. 이러한 기술은 시스템 관리 및 성능 최적화에 있어 매우 중요합니다.