MapR (현재는 HPE Data Fabric) 의 Monitoring (Node) Metric 문서를 보다가, CPUNICE
라는 컬럼 이름에 다음과 같은 설명이 있다. Amount of CPU time used by processes with a positive nice value. 오잉, 프로세스의 CPU 사용 시간인 것 까진 알겠는데, 양(positive) 의 좋은 값이라니?
실은, nice value가 다음과 같은 뜻이라고 한다.
Nice 값은 CPU의 스케줄링 우선순위를 의미합니다. 값의 범위는 +19 ~ -20으로, 숫자가 높을 수록 우선 순위는 낮습니다.
man 2 getpriority
를 참고하시면, 더 자세한 정보가 나와 있습니다. 프로세스를 실행할 때nice
명령어로 우선 순위를 부여할 수 있고,renice
명령어로 우선 순위를 조정할 수 있습니다. 우선 순위를 높이기 위해선, 슈퍼 유저 권한이 (root) 필요합니다. (출처)
참고로, getpriority()
는 프로세스의 현재 우선순위를 반환하는 인터페이스 이다. setpriority()
역시 존재하는데, 이 함수를 실행할 때 값을 낮추려면 sudoer 권한이 있어야 한다고 한다.