14.6.电源和资源管理
最后更新于
最后更新于
在 FreeBSD 中,资源管理由 内核设备管理。
注意
在 FreeBSD 中, 驱动程序在系统启动时默认加载。
此驱动程序 无法在启动后卸载,因为系统总线依赖它进行各种硬件交互。
除了 ,FreeBSD 还有多个针对不同 ACPI 厂商子系统的专用内核模块。这些模块会添加一些额外功能,例如风扇速度、键盘背光或屏幕亮度等。
可以通过执行以下命令来获取模块列表:
输出应类似于以下内容:
并在 /boot/loader.conf 中添加以下行,以便在启动时自动加载该模块:
CPU 是系统中最耗能的部分。了解如何提高 CPU 效率是节能的基本部分。
第一步是通过以下命令获取 CPU 信息:
① 此处的 0
表示 CPU 的第一个核心。
输出应类似于以下内容:
① 最低 Cx 状态,用于空闲时使 CPU 进入该状态。
② 支持的 CPU Cx 状态。
③ 当前可用的 CPU 频率级别(频率/功耗)。
④ 当前活动的 CPU 频率(单位:MHz)。
⑤ 当前 CPU 的温度。
注意
-a
:选择 AC 电源下的操作模式。
-i
:指定当自适应模式开始降低性能以节省电力时的 CPU 负载百分比。
-r
:指定当自适应模式认为 CPU 正在运行并提高性能时的 CPU 负载百分比。
-N
:将“nice”时间视为空闲时间以进行负载计算;即仅当 CPU 正忙于“nice”进程时,不会提高 CPU 频率。
然后启用该服务,执行以下命令:
输出应类似于以下内容:
频率比 CPU 最大频率高 1 MHz 表示启用了 Intel® Turbo Boost™ 功能。
要确定正在使用的频率控制驱动程序,可以检查 dev.cpufreq.0.freq_driver
oid:
输出应类似于以下内容:
可以通过检查 dev.cpu.%d.freq
oid 来确定当前 CPU 频率:
输出应类似于以下内容:
注意
近年来,显卡已成为计算机的基本组成部分。一些显卡可能会有过高的功耗,FreeBSD 允许通过特定的配置来改善功耗。
① 尝试跳过启动时不必要的模式设置。
② 启用省电显示 C 状态。
③ 启用帧缓冲压缩以节省电力。
挂起/恢复功能允许计算机保持在一个低功耗状态,并且可以在不丢失正在运行的程序状态的情况下恢复系统。
注意
S1
快速挂起到 RAM。CPU 进入较低的功耗状态,但大多数外围设备保持运行。
S2
比 S1 更低的功耗状态,但具有相同的基本特征。许多系统不支持此状态。
S3(睡眠模式)
挂起到 RAM。大多数设备断电,系统停止运行,仅内存保持刷新。
S4(休眠)
挂起到磁盘。所有设备断电,系统停止运行。恢复时,系统从冷启动状态开始。FreeBSD 尚不支持此功能。
S5
系统干净地关机并断电。
第一步是通过执行以下命令来了解硬件支持哪种类型的睡眠状态:
输出应类似于以下内容:
警告
如上所述,FreeBSD 尚不 支持
S4
状态。
在绝大多数情况下,挂起/恢复功能用于笔记本电脑。
可以通过在 /etc/sysctl.conf 文件中添加以下行来配置 FreeBSD 在关闭笔记本盖子时进入 S3
状态:
FreeBSD 在使挂起和恢复功能正常工作并达到最佳效果方面做了很多努力。然而,目前挂起和恢复功能仅在一些特定的笔记本电脑上能够正常工作。
如果挂起/恢复功能无法正常工作,可以进行一些检查。
在某些情况下,仅关闭蓝牙即可解决问题。在其他情况下,加载正确的显卡驱动程序等措施也可能解决问题。
例如,如果使用 IBM/Lenovo 笔记本电脑,则需要加载 模块,可以通过以下命令加载:
模块的替代方案是 驱动程序。它提供了一种通用方式来处理面板背光。默认的 GENERIC 内核包括此驱动程序。可以使用 工具查询并调整面板背光亮度。在此示例中,亮度降低了 10%:
为了正确地利用机器的资源,FreeBSD 支持 Intel Turbo Boost、AMD Turbo Core、Intel Speed Shift 等技术,通过使用 和 。
如果未显示温度信息,请加载 模块。使用 AMD CPU 时,请加载 模块。
获取到 CPU 信息后,配置省电的最简便方法是让 接管。
在 /etc/rc.conf 中启用 服务,以便在系统启动时自动启动:
还需要为 提供一些参数,告诉它如何管理 CPU 状态,可以执行以下命令:
hiadaptive
:操作模式。更多信息请参见 。
FreeBSD 包含一款通用的 驱动程序,能让管理员或诸如 和 等软件来管理 CPU 的频率,以实现性能与经济之间的平衡。较低的设置可以节省电力并减少 CPU 产生的热量,而较高的设置则会提高性能,但会增加电力消耗并产生更多热量。
Intel® Enhanced Speed Step™ 驱动程序 会替代通用的 驱动程序,用于支持此功能的 CPU。可以使用 静态调整 CPU 频率,或使用 /etc/rc.d/power_profile
启动脚本。额外的软件,如 或 ,可以根据处理器的利用率自动调整 CPU 频率。
可以通过查看 树列出每个支持的频率及其预期的功耗:
对于运行较新 Intel® CPU 的用户,在升级到 FreeBSD 13 后,可能会发现动态频率控制有所不同。对于某些 SKU,FreeBSD 13 引入了 驱动程序,它使硬件能够动态地调整核心频率,包括按核心调整。FreeBSD 13 使用该驱动程序自动启用 Speed Shift™ 控制,替代了旧的 Enhanced Speed Step™ 驱动程序。可以通过查看 dev.cpufreq.%d.freq_driver
来确定系统正在使用哪种频率控制驱动程序。
这表示正在使用新的 驱动程序。在此类系统上,oid dev.cpu.%d.freq_levels
将只显示 CPU 的最大频率,并且将显示功耗级别为 -1
。
有关更多信息,包括如何平衡性能和能耗,以及如何禁用此驱动程序,请参考 man 页面 。
习惯使用 或 的用户会发现这些工具已被 驱动程序所取代,不再按预期工作。
如果使用的是带有 驱动程序的 Intel® 显卡,可以将以下选项添加到 /boot/loader.conf 中:
为了使挂起/恢复功能正常工作,系统必须加载图形驱动程序。在不支持 KMS 的显卡上,必须使用 驱动程序,以避免破坏挂起/恢复功能。
更多有关使用哪些驱动程序以及如何配置的信息,参见 。
支持以下睡眠状态:
可以使用 来检查 S3
状态是否正常工作,执行以下命令,如果成功,屏幕将变黑,机器将关闭:
如果问题仍然存在,可以在 FreeBSD Wiki 的 部分找到一些故障排除的提示。