首页主机资讯Linux CPUInfo 频率调整

Linux CPUInfo 频率调整

时间2025-12-01 11:46:04发布访客分类主机资讯浏览657
导读:Linux CPU 频率调整与查看 一 关键概念与查看方法 频率信息在内核的 cpufreq 接口中,路径为:/sys/devices/system/cpu/cpu0/cpufreq/(每个 CPU 一个目录)。常用文件含义如下(单位多为...

Linux CPU 频率调整与查看

一 关键概念与查看方法

  • 频率信息在内核的 cpufreq 接口中,路径为:/sys/devices/system/cpu/cpu0/cpufreq/(每个 CPU 一个目录)。常用文件含义如下(单位多为 kHz,个别为 ns):
    • cpuinfo_cur_freq:当前硬件实际频率(从寄存器读取)
    • scaling_cur_freq:当前策略缓存的频率(可能与硬件不同步)
    • cpuinfo_min_freq / cpuinfo_max_freq:硬件支持的最小/最大频率
    • scaling_min_freq / scaling_max_freq:当前策略允许的最小/最大频率
    • scaling_available_frequencies:可用固定频点列表
    • scaling_available_governors:可用调速器(如 performance、powersave、ondemand、conservative、userspace、schedutil 等)
    • scaling_driver:当前使用的调频驱动(如 acpi-cpufreq、intel_pstate)
    • scaling_governor:当前生效的调速器
    • cpuinfo_transition_latency:频率切换延迟
    • stats/time_in_state:各频点累计运行时间与次数
  • 快速查看命令示例:
    • 查看当前频率与策略:cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
    • 查看支持的策略与频点:cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors;cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
    • 查看各频点运行统计:cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
    • 传统接口(不反映动态调频):cat /proc/cpuinfo(关注 cpu MHz 字段)

二 临时调整频率与策略

  • 使用 cpufrequtils(Debian/Ubuntu 等)
    • 安装:sudo apt-get install cpufrequtils
    • 查看:cpufreq-info -m
    • 设置全核为性能模式:for c in $(seq 0 $(nproc --all)); do sudo cpufreq-set -g performance -c $c; done
    • 手动指定频率范围并进入用户态调速:sudo cpufreq-set -g userspace -d 800MHz -u 2.0GHz;随后用 cpufreq-set -f 1.2GHz 设定具体频点(频点必须在可用列表中)
  • 使用 cpupower(RHEL/CentOS/Fedora 等)
    • 安装:sudo yum install kernel-tools 或 sudo dnf install kernel-tools
    • 设置全核性能模式:sudo cpupower frequency-set -g performance -c all
    • 设定固定频率(单位 kHz):sudo cpupower frequency-set -f 2000000
  • 直接写入 sysfs(无需额外工具)
    • 切换调速器:echo performance | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    • 设定上下限:echo 1200000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq;echo 3000000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    • 在 userspace 模式下设定频率:echo userspace | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor;echo 2000000 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
  • 提示
    • 频率值需为 kHz,且必须在 scaling_available_frequencies 范围内;设置顺序建议先定上下限,再设具体频率或切换调速器

三 永久生效与系统级配置

  • 使用发行版提供的工具
    • Debian/Ubuntu:编辑 /etc/default/cpufrequtils,设置 GOVERNOR=“performance”,然后 sudo systemctl restart cpufrequtils
    • RHEL/CentOS/Fedora:使用 tuned,执行 sudo tuned-adm profile performance 切换到性能预设(或 power-save 节能预设)
  • 使用 systemd 服务固化策略
    • 新建 /etc/systemd/system/cpufreq.service:
      • [Unit] Description=Set CPU frequency to performance
      • [Service] Type=oneshot ExecStart=/usr/bin/cpupower frequency-set -g performance -c all
      • [Install] WantedBy=multi-user.target
    • 启用:sudo systemctl enable --now cpufreq.service
  • 内核启动参数(仅在需要时)
    • 禁用 Intel P-State(改用 acpi-cpufreq):在 /etc/default/grub 的 GRUB_CMDLINE_LINUX 中添加 intel_pstate=disable,然后更新 GRUB 并重启
  • 说明
    • 某些平台(如部分云服务器/虚拟机)可能限制调频或策略生效,需在 BIOS/UEFI 将电源管理设为 Max Performance 后再于系统内设置

四 常见问题与排查

  • 目录或文件不存在
    • 可能未启用 CPUFreq 或所需驱动未加载。检查是否存在 /sys/devices/system/cpu/cpu0/cpufreq;必要时加载相应模块(如 acpi-cpufreq、intel_pstate 等),或确认硬件/虚拟化是否支持调频
  • 设置失败或无权限
    • 需要 root 或具备相应能力(CAP_SYS_ADMIN);在 systemd 服务或 sudo 下执行
  • 频率不变或策略被覆盖
    • 检查是否设置了过低的 scaling_max_freq;确认没有其它电源管理工具(如 tuned、cpuspeed、BIOS 节能策略)覆盖设置
  • 如何验证
    • 对比 cpuinfo_cur_freqscaling_cur_freq;观察 stats/time_in_state 是否出现目标频点的累计时间增长

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux CPUInfo 频率调整
本文地址: https://pptw.com/jishu/759938.html
Linux CPUInfo 虚拟化识别 Linux CPUInfo 显示内容

游客 回复需填写必要信息