Linuxpia/Linux 명령어

[리눅스 명령어] nice 명령어

Linuxpia4U 2023. 11. 26. 04:20
반응형

nice 명령어

nice 명령어는 UNIX 및 리눅스 시스템에서 프로세스의 우선순위(niceness)를 조정하여 실행하는 데 사용됩니다. 시스템에서 프로세스 스케줄러가 프로세스에 CPU 시간을 할당할 때, nice 값은 프로세스의 우선순위를 나타내는 데 사용되며, 높은 nice 값은 낮은 우선순위를 의미합니다.

nice 명령어 사용법

nice 명령어의 기본 구문은 다음과 같습니다:

nice [옵션] [명령]
  • 명령: 우선순위를 조정하고자 하는 명령입니다.
  • 옵션: 특히 -n 옵션은 nice 값(우선순위를 조정하는 데 사용되는 값)을 지정하는 데 사용됩니다.

예시

  • 새로운 nice 값과 함께 명령 실행하기:
nice -n 10 command

이 예시는 commandnice 값 10으로 실행합니다. 기본적으로, nice 값은 0에서 시작하며, 값이 높을수록 우선순위가 낮아집니다. nice 값은 -20에서 19까지의 범위를 가집니다.

  • 기존 프로세스의 nice 값 변경하기:

이를 위해서는 renice 명령어를 사용합니다:

renice 10 -p 12345

이 예시는 프로세스 ID가 12345인 프로세스의 nice 값을 10으로 변경합니다.

주의사항

  • nice 값이 낮을수록 (음수에 가까울수록) 프로세스는 더 높은 CPU 우선순위를 가집니다.
  • 일반 사용자는 자신의 프로세스의 nice 값을 낮출 수 없습니다(즉, 우선순위를 높일 수 없습니다). 이것은 시스템의 보안과 안정성을 위한 조치입니다.
  • 관리자(루트 사용자)는 모든 프로세스의 nice 값을 조정할 수 있습니다.
  • nice 값 조정은 CPU 점유율에 영향을 줍니다. 따라서 자원 집약적인 작업을 배경에서 실행할 때 시스템의 반응성을 유지하기 위해 nice 값을 증가시키는 것이 일반적인 관행입니다.

nice priority transper

사례

사례 1: 리소스 집약적인 작업의 우선순위 낮추기

예를 들어, 대규모 데이터베이스에 대한 복잡한 데이터 분석을 수행하는 스크립트가 있다고 가정해 봅시다. 이 스크립트는 시스템의 리소스를 많이 소모하여 다른 사용자나 서비스에 영향을 줄 수 있습니다. 이 경우, 작업의 우선순위를 낮춰서 시스템의 반응성을 유지하고 싶을 수 있습니다.

nice -n 15 ./analyze-database.sh

이 명령은 analyze-database.sh 스크립트를 기본 우선순위보다 낮은 우선순위(15)로 실행합니다. 이렇게 하면, 스크립트는 CPU를 필요로 하는 다른 프로세스보다 낮은 우선순위를 가지게 되어, 다른 작업이 CPU 시간을 더 많이 요구할 때 자동으로 CPU 사용량이 줄어들게 됩니다.

사례 2: 우선순위가 높은 작업 실행하기

시스템 관리자가 긴급한 업데이트 스크립트를 빠르게 실행해야 하는 경우가 있을 수 있습니다. 루트 사용자로 로그인하여 다음과 같이 명령어를 실행할 수 있습니다.

nice -n -5 ./emergency-update.sh

이 명령은 emergency-update.sh 스크립트를 더 높은 우선순위(-5)로 실행하여, 다른 일반 프로세스보다 더 많은 CPU 시간을 할당받도록 합니다. 일반 사용자는 nice 값을 감소시킬 수 없지만, 루트 사용자는 가능합니다.

사례 3: 이미 실행 중인 프로세스의 우선순위 조정하기

시스템에서 이미 실행 중인 프로세스의 우선순위를 변경해야 할 수도 있습니다. 이 경우에는 renice 명령어를 사용합니다.

renice 10 -p 9876

이 명령은 프로세스 ID가 9876인 프로세스의 nice 값을 10으로 변경합니다. 이 작업을 수행하기 위해서는 해당 프로세스의 소유자이거나 루트 권한이 필요합니다. 이렇게 하면 해당 프로세스는 다른 일반 우선순위의 프로세스보다 CPU 시간을 덜 할당받게 됩니다.

이러한 사례들은 nice 명령어를 사용하여 시스템 리소스를 관리하고, 다양한 프로세스의 CPU 시간 할당을 조정하는 방법을 보여줍니다.

반응형