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,目录下有以下访问接口:
| 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范围内 |