linux下cpu锁定频率以及频率设置

linux下cpu锁定频率以及频率设置

环境如下

  • ubuntu22.04
  • cpu为5700g

前期准备

  • 使用工具为:cpufrequtils

    sudo apt-get install cpufrequtils
    
  • 查询cpu相关信息

    cpufreq-info
    
    # 部分信息如下
    analyzing CPU 0:
      driver: amd-pstate
      CPUs which run at the same hardware frequency: 0
      CPUs which need to have their frequency coordinated by software: 0
      maximum transition latency: 131 us.
      hardware limits: 400 MHz - 4.67 GHz
      available cpufreq governors: conservative, ondemand, userspace, powersave, performance, schedutil
      current policy: frequency should be within 400 MHz and 4.67 GHz.
                      The governor "ondemand" may decide which speed to use
                      within this range.
      current CPU frequency is 2.12 GHz.
    
    

    available cpufreq governors为模式选择,其意义分别如下:

    策略作用
    conservative保守的,会自动在频率上下限调整,相对于ondemand调度不是很激进
    ondemand一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率
    powersave以最低频率运行
    performance以最高频率运行
    userspace以用户自定义频率运行
    schedual基于scheduler负载数据的调频
  • 使用命令查询cpu各线程的频率

    cat /proc/cpuinfo | grep MHz
    
    #########################
    cpu MHz		: 1137.544
    cpu MHz		: 528.190
    cpu MHz		: 400.000
    cpu MHz		: 1587.075
    cpu MHz		: 442.730
    cpu MHz		: 1554.973
    cpu MHz		: 400.000
    cpu MHz		: 1609.307
    cpu MHz		: 400.000
    cpu MHz		: 570.920
    cpu MHz		: 400.000
    cpu MHz		: 784.570
    cpu MHz		: 1684.389
    cpu MHz		: 570.920
    cpu MHz		: 442.730
    cpu MHz		: 613.650
    

设置如下

  • 对cpu锁定频率的话,可以两个步骤,首先是将cpu的调度策略换成userspace, 再指定频率

  • 使用cpufreq-set 进行设置,其相关的参数如下:

    jing@jing:~$ cpufreq-set -help
    cpufrequtils 008: cpufreq-set (C) Dominik Brodowski 2004-2009
    Report errors and bugs to cpufreq@vger.kernel.org, please.
    Usage: cpufreq-set [options]
    Options:
      -c CPU, --cpu CPU        number of CPU where cpufreq settings shall be modified
      -d FREQ, --min FREQ      new minimum CPU frequency the governor may select
      -u FREQ, --max FREQ      new maximum CPU frequency the governor may select
      -g GOV, --governor GOV   new cpufreq governor
      -f FREQ, --freq FREQ     specific frequency to be set. Requires userspace
                               governor to be available and loaded
      -r, --related            Switches all hardware-related CPUs
      -h, --help               Prints out this screen
    
    Notes:
    1. Omitting the -c or --cpu argument is equivalent to setting it to zero
    2. The -f FREQ, --freq FREQ parameter cannot be combined with any other parameter
       except the -c CPU, --cpu CPU parameter
    3. FREQuencies can be passed in Hz, kHz (default), MHz, GHz, or THz
       by postfixing the value with the wanted unit name, without any space
       (FREQuency in kHz =^ Hz * 0.001 =^ MHz * 1000 =^ GHz * 1000000).
    
    
  • 例如指定所有cpu线程以3GHz的频率运行

    • 可以编写以下脚本cpu_test.sh(我的cpu有16个线程)
    sudo cpufreq-set -g userspace -c 0
    sudo cpufreq-set -f 3GHz -c 0
    sudo cpufreq-set -g userspace -c 1
    sudo cpufreq-set -f 3GHz -c 1
    sudo cpufreq-set -g userspace -c 2
    sudo cpufreq-set -f 3GHz -c 2
    sudo cpufreq-set -g userspace -c 3
    sudo cpufreq-set -f 3GHz -c 3
    sudo cpufreq-set -g userspace -c 4
    sudo cpufreq-set -f 3GHz -c 4
    sudo cpufreq-set -g userspace -c 5
    sudo cpufreq-set -f 3GHz -c 5
    sudo cpufreq-set -g userspace -c 6
    sudo cpufreq-set -f 3GHz -c 6
    sudo cpufreq-set -g userspace -c 7
    sudo cpufreq-set -f 3GHz -c 7
    sudo cpufreq-set -g userspace -c 8
    sudo cpufreq-set -f 3GHz -c 8
    sudo cpufreq-set -g userspace -c 9
    sudo cpufreq-set -f 3GHz -c 9
    sudo cpufreq-set -g userspace -c 10
    sudo cpufreq-set -f 3GHz -c 10
    sudo cpufreq-set -g userspace -c 11
    sudo cpufreq-set -f 3GHz -c 11
    sudo cpufreq-set -g userspace -c 12
    sudo cpufreq-set -f 3GHz -c 12
    sudo cpufreq-set -g userspace -c 13
    sudo cpufreq-set -f 3GHz -c 13
    sudo cpufreq-set -g userspace -c 14
    sudo cpufreq-set -f 3GHz -c 14
    sudo cpufreq-set -g userspace -c 15
    sudo cpufreq-set -f 3GHz -c 15
    exit 0
    
    • 执行cpu_test.sh,再查看cpu运行频率
    jing@jing:~$ cat /proc/cpuinfo | grep MHz
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 2969.117
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    cpu MHz		: 3000.000
    
    • 可以发现cpu的线程基本稳定在3GHz上下
    • 也可以尝试另一种锁定频率的方法将最小频率和最大频率都设置成3GHz
  • 设置成保守模式,可执行以下脚本内容

    sudo cpufreq-set -g conservative -c 0
    sudo cpufreq-set -g conservative -c 1
    sudo cpufreq-set -g conservative -c 2
    sudo cpufreq-set -g conservative -c 3
    sudo cpufreq-set -g conservative -c 4
    sudo cpufreq-set -g conservative -c 5
    sudo cpufreq-set -g conservative -c 6
    sudo cpufreq-set -g conservative -c 7
    sudo cpufreq-set -g conservative -c 8
    sudo cpufreq-set -g conservative -c 9
    sudo cpufreq-set -g conservative -c 10
    sudo cpufreq-set -g conservative -c 11
    sudo cpufreq-set -g conservative -c 12
    sudo cpufreq-set -g conservative -c 13
    sudo cpufreq-set -g conservative -c 14
    sudo cpufreq-set -g conservative -c 15
    exit 0
    
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值