어떤 상황에서 상위의 ni%가 0이 아니나요?

어떤 상황에서 상위의 ni%가 0이 아니나요?

나는 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 &

결과:

3개 프로세스의 최고 결과

시나리오 2: setpriority를 ​​통해 코드의 훌륭함을 변경한 다음 프로세스를 실행합니다. ni는 여전히 0입니다.

  int which = PRIO_PROCESS;
  id_t pid = getpid();
  int ret;
  int priority = -10;
  ret = setpriority(which, pid, priority);

setpriority를 ​​통해 niceness 변경 고마워요, 러셀

답변1

~에서man 1 top:

ni, nice : 사용자 프로세스가 실행되는 시간

"Niced"는 "기본값보다 좋음", 즉 "기본값보다 좋음 0"으로 해석되어야 합니다. -10당신의 예에서는 좋은 흐름을 관찰하지 못하고 있습니다.더 적은좋아요, 나쁘지 않아요.

예를 들어, 이것은 그리 나쁘지 않습니다:

nice -n 1 md5sum /dev/urandom

관련 정보