짧은 답변

짧은 답변

나는 최근에 과정의 아름다운 가치를 배웠습니다. 사용자 프로그램을 실행하는 경우 nice 값을 가능한 한 낮게 설정해야 합니까? 이렇게 하면 프로세스가 더 빠르게 실행됩니까?

답변1

시작된 프로그램의 좋은 값은 일반적으로 0입니다. 즉, 시스템에서 실행 중인 대부분의 다른 프로세스의 좋은 값보다 높거나 낮지 않습니다. Nice-Value는 프로세스의 예약 우선순위를 수정합니다.

권한이 없는 사용자는 다음을 수행할 수 있습니다.오직좋은 값을 지정하세요줄이다자체 프로세스의 스케줄링 우선순위("더 나은" 경우에도)

일정 우선순위가 높은 프로세스는 실행되지 않을 수 있습니다.서둘러요낮은 스케줄링 우선순위와 비교하면 커널의 실행 큐가 길어지고(많은 동시 프로세스가 바쁜 시스템에서 CPU 시간을 놓고 경쟁하는 경우) 로드(측정되는 값)가 늘어납니다.실행 큐 길이)이 증가하면 대기열의 다른 프로세스에 비해 실행이 예약될 확률이 더 높아집니다. 실행이 가능할 것이다더 자주.

그렇지 않다면게으른시스템에서 좋은 값이 높은 프로세스를 실행하는 것은 좋은 값이 낮은 프로세스를 실행하는 것과 다르지 않습니다. 어느 쪽이든 CPU 사용률은 100% 또는 100%에 가깝습니다. 더 빠르거나 느리게 실행되지 않습니다.

권한이 없는 사용자의 경우 nicerenice유틸리티는 다른 사용자에게 적합하도록 프로세스의 예약 우선순위를 낮추는 데 사용되는 유틸리티입니다.

루트 사용자는 실행 중인 프로세스의 예약 우선순위를 높이거나 더 높은 값으로 프로세스를 시작할 수 있습니다.

내 (OpenBSD) 시스템에서 더 높은 스케줄링 우선순위로 실행되는 유일한 프로세스는 ntpd(타이밍 데몬) 및 sndiod(OpenBSD의 오디오/MIDI 서버)입니다. 다른 프로세스가 작업을 완료할 때까지 기다리지 않고.

답변2

짧은 답변

(일반 사용자로서) 나쁜 생각이기 때문에 그렇게 할 수 없습니다.

긴 대답

대부분의 경우 이는 아무런 차이가 없습니다(유일하게 실행 중인 프로세스이거나 실행 중인 총 스레드 수가 CPU 코어 수보다 적은 경우).

영향을 미치면 프로세스가 좋지 않을 것입니다. 프로세서를 잡아먹습니다. 컴퓨터가 응답하지 않게 됩니다.

더 긴 답변:

Nicenese를 줄이는 것이 적합한 유일한 경우는 실시간 프로세스입니다. 이는 특정 시간 내에 작업을 완료해야 하는 프로세스를 위한 것입니다. 이러한 절차는 아름답게 작성되어야 합니다( 가 아님 nice). 그것은 그곳에서 작업을 수행하고 프로세서를 버리는 것입니다. 아마 당신은 이것으로 장난을 치고 싶지 않을 것입니다. 선의로 동작하는 프로세스의 동적 우선순위가 높아지므로 이는 필요하지 않을 수도 있습니다. (보다 극단적인 실시간 우선순위도 있습니다(Real-Time Scheduler 참조). 이러한 우선순위는 절대 건드리고 싶지 않을 수도 있습니다. 특히 프로덕션 시스템에서는 더욱 그렇습니다. 이것은 중요한 작업을 수행하는 시스템입니다.)

관련 정보