CPUfreq 子系统可以使用 5 种内核调控器。这些调控器根据特定标准设置处理器频率;其中一些根据系统或用户对输入的更改而动态更改频率。本文将重点讨论 RHEL 5.2,它基于 2.6.18 内核,因此所有这些调控器都可以使用。(本系列的第 2 和第 3 部分将详细讨论调控器。)
性能调控器:最高的频率
性能调控器会静态将处理器设置为可用的最高频率。您可以调整此调控器可用的频率范围。顾名思义,此调控器的目标的通过将处理器时钟速度设置为最大级别而实现最大的系统性能。此调控器默认不会尝试提供任何电能节省,但您可以通过调优调控器来更改它所选的频率。
电能节省调控器:最低的频率
另一方面,电能节省调控器会静态将处理器设置为可用的最低频率。您仍然可以调整此调控器可用的频率范围。此调控器的作用是始终以最低的速度运行。显然,这有时会影响性能,因为无论处理器多么繁忙,系统都不会提高频率。
事实上,此调控器经常都不会节省任何电能,因为最有效的电能节省通常来自空闲时通过输入 C 电源状态实现的节省。使用电能节省调控器会拖慢进程的运行,因为它会以最低的频率运行;因此,系统需要花更长的时间进入空闲状态,然后才能获得 C 电源状态节省。
用户空间调控器:手动频率
接下来介绍用户空间调控器,它允许您手动选择和设置频率。此调控器还可以与在用户空间中运行的处理器频率守护程序结合使用来控制频率(我们将在第 2 部分中讨论关于守护程序的更多信息,并提供一些示例)。此调控器可用于设置唯一的电源策略(不可预设,也不可从其他调控器获取);您还可以使用它来试验策略。
注意,用户空间调控器本身并不会动态更改频率;而是允许您或用户空间程序动态选择处理器频率。
随需应变调控器:基于处理器的频率变更
2.6.10 内核中引入的随需应变调控器是首款根据处理器利用率动态更改处理器频率的内核调控器。随需应变调控器将检查处理器利用率,如果发现其超过阀值,则会将频率设置为可用的最高值。如果调控器发现利用率小于阀值,则会继续降低频率,直到它达到可用的最低值。
您可以控制可用频率的范围,调控器检查系统利用率的频率以及利用率阀值。
保守调控器:更具渐进性的随需应变方式
基于随需应变调控器的保守调控器(在 2.6.12 内核中引入)也是根据处理器利用率来调整频率;但是,保守调控器稍有不同,它允许电能更加渐进性地增加。保守调控器将检查处理器利用率,并比较其与阀值的大小,适当地增加或减少频率,而不是直接使用最高或最低的频率。
您可以控制可用频率的范围、调控器检查系统利用率的频率、利用率阀值以及频率渐进率。