나는 ni가 사용자 공간 프로세스를 위한 CPU를 의미하며 그 장점이나 우선 순위 값이 변경되었다는 것을 이해합니다. 하지만 내 시스템, 즉 CentOS Linux 릴리스 7.9.2009(Core)에서는 아래 테스트와 모든 테스트를 수행했습니다. 결과적으로 ni는 항상 0. ni%가 언제 변경되는지 이해하도록 도와줄 수 있는 사람이 있나요?
ProNoChange는 일부 CPU를 소비하는 간단한 프로세스입니다.
장면 1:
taskset -c 31 ./PriNoChange 50 &
taskset -c 31 nice -n -10 ./PriNoChange 50 &
taskset -c 31 chrt --rr 50 ./PriNoChange 50 &
결과:
시나리오 2: setpriority를 통해 코드의 훌륭함을 변경한 다음 프로세스를 실행합니다. ni는 여전히 0입니다.
int which = PRIO_PROCESS;
id_t pid = getpid();
int ret;
int priority = -10;
ret = setpriority(which, pid, priority);
답변1
~에서man 1 top
:
ni
,nice
: 사용자 프로세스가 실행되는 시간
"Niced"는 "기본값보다 좋음", 즉 "기본값보다 좋음 0
"으로 해석되어야 합니다. -10
당신의 예에서는 좋은 흐름을 관찰하지 못하고 있습니다.더 적은좋아요, 나쁘지 않아요.
예를 들어, 이것은 그리 나쁘지 않습니다:
nice -n 1 md5sum /dev/urandom