Niceness
100%

프로세스 · 레슨 8

Niceness

nice 값이 일반 Linux 프로세스의 CPU 스케줄링 가중치에 영향을 주는 방식을 배웁니다.

Linux는 서로 다른 CPU 코어에서 스레드를 동시에 실행하고 한 번에 실행할 수 있는 수보다 많은 실행 가능 스레드가 있을 때 코어 시간을 나눌 수 있습니다. 스케줄러는 스케줄링 정책, 우선순위, 선호도, 작업 부하에 따라 선택합니다. nice 값은 일반 시분할 정책의 입력 중 하나입니다.

Nice 값 해석하기

관례적인 nice 범위는 -20부터 19입니다.

  • 값이 낮으면 비교 가능한 작업보다 더 큰 스케줄링 가중치를 받습니다.
  • 값이 높으면 상대 가중치를 덜 받아 더 “nice”해집니다.
  • 기본값은 흔히 0입니다.

Niceness는 CPU 백분율을 예약하거나 즉시 실행을 보장하지 않습니다. 비교 가능한 실행 가능 작업이 CPU 시간을 놓고 경쟁할 때 효과가 가장 잘 보입니다. 실시간 정책, cgroups, CPU 선호도, 입출력 대기, 다른 제어가 관찰된 동작을 지배할 수 있습니다.

같은 일반 스케줄링 정책에서 상대적인 CPU 가중치가 더 큰 nice 값은 무엇인가요?

Niceness 확인하기

top에서 NI 열이 nice 값을 표시합니다. ps에서도 요청할 수 있습니다.

$ ps -o pid,ni,pri,stat,cmd -p 3245

NI는 사용자가 보는 nice 값입니다. PRI나 비슷한 열은 계산된 스케줄러 우선순위일 수 있고 척도가 도구와 스케줄링 클래스에 따라 다르므로 두 열을 서로 바꿔 쓸 수 있다고 가정하지 마세요.

일반적으로 top에서 nice 값을 표시하는 열은 무엇인가요?

nice로 명령 시작하기

nice로 조정된 값을 가진 새 명령을 시작합니다.

$ nice -n 5 long-computation

요청 조정값과 허용되는 구문은 로컬 매뉴얼에서 확인할 수 있습니다. 권한이 없는 사용자는 일반적으로 값을 높여 명령을 더 nice하게 만들 수 있습니다. nice 값을 낮춰 더 유리한 스케줄링 가중치를 주려면 적절한 권한이나 구성된 자원 제한이 필요합니다.

nice -n 5 long-computation은 무엇을 하나요?

renice로 기존 프로세스 변경하기

이미 실행 중인 프로세스에는 renice를 사용합니다.

$ renice -n 10 -p 3245

PID 3245에 nice 값 10을 요청합니다. PID를 재사용할 수 있으므로 먼저 대상을 검증하고 결과 값을 확인하세요. 권한은 소유권, privilege, 자원 제한, 시스템 정책에 따라 달라집니다. 자신이 소유한 프로세스의 nice 값을 높이는 것은 보통 허용되지만 권한 없이 그 변경을 되돌리지 못할 수 있습니다.

기존 프로세스의 nice 값을 변경하는 도구는 무엇인가요?

Linux 프로세스 관리 및 모니터링 실습은 nice 값을 보고 변경할 수 있는 통제된 환경을 제공합니다. 유휴 시스템에서 눈에 띄는 차이를 기대하지 말고 경쟁하는 CPU 중심 작업을 비교하세요.

레슨 완료

Niceness 완료

이제 niceness를 CPU 보장으로 오해하지 않고 해석하고 조정할 수 있습니다.

  • 낮은 nice 값을 더 큰 상대 스케줄링 가중치로 읽을 수 있습니다.

  • NI를 계산된 우선순위 필드와 구분해 확인할 수 있습니다.

  • 명령을 시작할 때 nice를 사용할 수 있습니다.

  • 검증된 기존 프로세스에 renice를 사용할 수 있습니다.

학습 진행 상황 저장

무료 계정을 만들어 이 레슨을 저장하고 어떤 기기에서든 계속 학습하세요.

무료 계정 만들기
다음 수업
프로세스(으)로 돌아가기