CPU性能伸缩技术概述

CPU performance scaling 能够让操作系统按需调整CPU 频率来节约电能或者提高性能。CPU频率伸缩性可以按照系统负载自动响应,针对ACPI 事件调整,或者使用用户空间程序手工调整。

CPU Frequency的推荐接口: sysfs

在Linux系统中,建议和CPU Frequency交互的接口使用 sysfs 系统。在挂载的 /sys 文件系统中, 位于cpu设备目录下的 cpufreq 子目录就是内核交互接口。这个接口是按照cpu核心来分布目录结构的,例如 /sys/devices/system/cpu/cpu0/cpufreq/ 就是第一个CPU,目录下有以下访问接口:

cpufreq 访问接口文件

sysfs cpufreq接口

说明

cpuinfo_min_freq

处理器能够运行的最低操作频率(Hz)

cpuinfo_max_freq

处理器能够运行的最高操作频率(Hz)

scaling_driver

用于设置该CPU频率的cpufreq驱动(例如intel_pstate)

scaling_available_governors

当前内核可以使用的CPUfreq调机器: 通过cat该文件内容可以看到所支持的调节器 如performance 或 powersave

scaling_min_freq和scaling_max_freq

当前cpufreq调机器的策略限制主频范围,通过echo值到这两个文件中能够修订策略限制的范围。注意需要先修改scaling_max_freq再修改scaling_min_freq

scaling_setspeed

通过 echo 值到该文件能够调节CPU速率,但是调节值必须位于scaling_min_freq和scaling_max_freq范围内

参考