CPU 거버너를 "성능"으로 설정하면 어떤 효과가 있습니까?

CPU 거버너를 "성능"으로 설정하면 어떤 효과가 있습니까?

최근에 레귤레이터를 "절전" 대신 "성능"으로 설정하면 CPU 성능을 높일 수 있다는 기사를 읽었습니다. ~에 따르면아치스 위키, "최소 주파수" 대신 "최대 주파수에서 CPU를 실행"합니다.

이 표현이 혼란스러워서 나도 읽었습니다.커널 문서.

2.1 성능

CPUfreq 조정기 "성능"은 CPU를 Scaling_min_freq 및 Scaling_max_freq 범위 내에서 가장 높은 주파수로 정적으로 설정합니다.

2.2 절전

CPUfreq 거버너 "powersave"는 CPU를 Scaling_min_freq 및 Scaling_max_freq 범위에서 가장 낮은 주파수로 정적으로 설정합니다.

"정적"은(는) 무슨 뜻인가요? 나에게 이것은 "동적"과 대조되며 주파수가 절대 변하지 않는다는 것을 의미합니다. 즉, 전력을 절약하면 CPU 주파수가언제나는 단일 값이며 와 같습니다 scaling_min_freq. 그러나 이는 분명히 사실이 아니다. 현재 기본적으로 "powersave"를 실행합니다. CPU 주파수를 모니터링할 수 있습니다.

$ watch grep \"cpu MHz\" /proc/cpuinfo

동적으로 변경되는 것을 확인하세요.

커널 문서에서 "정적"이란 무엇을 의미합니까? CPU 주파수에 영향을 미치는 요인은 무엇이며, 이러한 요인은 절전 및 성능에 따라 어떻게 달라지나요? 그렇다면 전자에서 후자로 이동한다는 것은 무엇을 의미합니까? 더 높은 주파수가 사용됩니까? 어떤 조건에서? 구체적으로 이것이 CPU의 전력 소비, 발열, 수명에 영향을 미칠까요?

답변1

참고로 (최신)cpufreq여기 문서.

"정적"은(는) 무슨 뜻인가요? 나에게 이것은 "동적"과 대조되며 주파수가 결코 변하지 않는다는 것을 의미합니다. 즉, powersaveCPU 주파수는 항상 다음과 같은 단일 값입니다.scaling_min_freq

네가 옳아. 예전 cpufreq드라이버 시대에는 동적 거버너와 정적 거버너라는 두 가지 유형의 거버너가 있었습니다. 차이점은 동적 거버너( ondemandconservative)는 CPU 사용률에 따라 CPU 주파수 간에 전환할 수 있는 반면 정적 거버너( performancepowersave)는 CPU 주파수를 변경하지 않는다는 것입니다.
그러나 아시다시피 새 드라이버를 사용하면

이것은 분명히 사실이 아닙니다.

새 드라이버가 호출되기 때문입니다.intel_pstate, 작업 방법이 다릅니다. AKA p-states운영 성능 포인트에는 활성 전력 관리 및 유휴 경합이 포함되며, 이는 전압 및 주파수 조정을 의미합니다. 자세한 내용은 공식 문서를 참조하세요.
실제 질문에 관해서는,

CPU 거버너를 "성능"으로 설정하면 어떤 효과가 있습니까?

이에 대한 답변도 같은 문서에 나와 있습니다. 모두 마찬가지천호+프로세서, CPU의 작동 모드는 - 기본적으로 -"HWP를 이용한 액티브 모드"따라서 주지사를 사용하는 의미는 다음 performance과 같습니다(강조).

HWP+성능

이 구성에서는 프로세서의 에너지 성능 기본 설정( ) 노브(지원되는 경우) 또는 에너지 성능 바이어스( ) 노브(그렇지 않은 경우)를 intel_pstate will작성합니다 .0EPPEPB이는 프로세서의 내부 P 상태 선택 논리가 전적으로 성능에 초점을 맞출 것으로 예상됨을 의미합니다..

이는 인터페이스의 /settings를 재정의합니다 EPP(아래 에너지 및 성능 팁 참조). 또한 이 구성에서는 프로세서의 내부 P 상태 선택 논리에 사용할 수 있는 P 상태 범위가 항상 상한(즉, 드라이버에서 사용할 수 있는 최대 P 상태)으로 제한됩니다.EPBsysfs


한마디로:
intel_pstate실제로는지사그리고하드웨어 드라이버일체. 이는 두 가지 전략을 지원합니다.

  • performance정책항상 가장 높은 p 상태를 선택하십시오.: 성능을 최대화한 다음 "유휴 경쟁"이라고도 알려진 가상의 에너지 소비 0 상태로 돌아갑니다.
  • powersave전략은 성능과 에너지 절약의 균형을 맞추려고 시도합니다. CPU 사용률(이 특정 p-상태의 로드는 더 높은 p-상태로 들어갈 때 떨어질 수 있음)과 용량(최고 성능에서 최대 성능)을 기준으로 적절한 p-상태를 선택합니다. p 상태)

답변2

개인적인 경험에 따르면, 제가 사용한 모든 컴퓨터에서 "절전"은 CPU 주파수/전압 조정을 허용하고 유휴 상태에서는 기본적으로 CPU를 축소하는 반면 "성능"은 필요할 때만 CPU 주파수/전압 조정을 사용합니다. , 프로세서가 열 범위를 벗어나 작동하는 경우.

또한 질문이 있습니다. 주파수 스케일링을 비활성화하면 거버너를 "절전" 모드에서 "성능" 모드로 변경하는 것과 동일한 영향을 미치나요? 아니면 이러한 거버너가 스케일링 매개변수 외에 성능에 영향을 미치는 다른 로직도 변경합니까? 예를 들어, "성능" 거버너에서 "최소" 주파수 임계값은 무시되는 것으로 나타나고 CPU는 열 범위 내에서 사용 가능한 가장 높은 주파수로 자동으로 점프합니다. 따라서 주파수 조정기를 변경하는 것과 단순히 "최소/최대 주파수"를 가장 높은 값으로 설정하는 것 사이에는 기능적 차이가 없는 것 같습니다.

이를 테스트하기 위해 HardInfo 0.6-alpha를 설치하고 다음 세 가지 설정을 각각 사용하여 모든 성능 테스트의 여러 인스턴스를 실행했습니다.

1. Governor: Performance, max and min cpu frequency both set at max
2. Governor: Performance, max cpu frequency at max, min frequency at min
3. Governor: Powersave, max and min cpu frequency both set at max

오류 한계를 벗어나면 세 가지 설정 간에 일관된 성능 편차가 나타나지 않습니다. 테스트 경험이 더 많은 사람은 이러한 성능 설정 간의 차이점에 대해 보다 철저한 작업 테스트를 수행할 수 있습니다. 그러나 실제적인 목적에서는 비슷해 보입니다. 따라서 주요 문제는 불필요한 복잡성을 제거하기 위해 CPU 제어 UI를 단순화하는 것입니다. pstate 거버너를 절전 모드에서 성능 모드로 변경하는 것은 단순히 최소/최대 주파수를 함께 잠그는 것보다 중복되는 것처럼 보입니다.

특수 컴퓨팅 시스템의 경우 특수 작업 부하에 맞게 CPU를 "성능" 거버너에 배치하는 것이 더 쉽지만 다목적 워크스테이션의 경우 거버너를 절전 모드로 설정하고 최소/중요도를 통해 성능을 조정하는 것이 더 효율적일 수 있습니다. 최대 설정을 사용하면 사용자가 특정 성능 시나리오를 더욱 세밀하게 제어할 수 있습니다.

답변3

당신이 어떤 페이지를 읽고 있는지는 모르겠지만, 이 페이지는CPU 주파수 스케일링wiki.archlinux에 언급된 내용:

커널 3.4부터 필요한 모듈이 자동으로 로드되고 권장되는 ondemand 조정기가 기본적으로 활성화됩니다.

ondemand거버너는 증가된 속도의 이점을 누릴 수 있을 만큼 시스템에 충분한 로드가 있을 때, 즉 전체 시간 슬롯 동안 CPU에서 실행 중인 무언가가 있을 때 CPU 속도를 증가시킵니다.

실행 중인 거버너를 확인하여 실제로 ()인지 확인하세요. ondemand기본값을 변경할 필요가 없을 수도 있습니다./sys/devices/system/cpu/cpufreq/policyN/scaling_governor

performance그리고 powersave주파수를 각각 최대 및 최소로 직접 설정하고 부하에 따라 변경하지 않는 것 같습니다.


또한 Wiki 페이지에는 Sandy Bridge 시스템 이상에서 performance수행되는 역할 도 언급되어 있습니다. ondemand이는 해당 시스템의 기본 설정이기도 합니다. 따라서 시스템이 충분히 새롭다면 실제로 작동하는 모습을 볼 수 있을 것입니다. 링크를 확인하세요이에 대해 다룬 기사위키에서.

관련 정보