全部產品
Search
文件中心

:如何解決查看/proc/cpuinfo檔案中CPU頻率與執行個體規格說明中不一致的問題

更新時間:May 26, 2026

本文以Alibaba Cloud Linux 3系統為例,介紹了查看/proc/cpuinfo檔案中CPU的頻率與執行個體規格說明中的頻率不同的原因及解決方案。

問題現象

在閑置狀態下,通過/proc/cpuinfo看到部分CPU的頻率為800 MHz,和執行個體規格說明中的頻率值不同,如下所示。

cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 2996.976
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 3192.046
cpu MHz		: 800.000
cpu MHz		: 3200.000
cpu MHz		: 800.000
cpu MHz		: 2975.717
cpu MHz		: 800.000
cpu MHz		: 3005.653
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000
cpu MHz		: 800.000

如涉及以下核心/作業系統,也可以參考本文解決。

核心/作業系統

核心/作業系統

版本

Linux kernel

v5.11及以上版本

Debian

12.0及以上版本

Fedora

33.0及以上版本

Redhat

9.0及以上版本

AlmaLinux

9.0及以上版本

CentOS Stream

9.0及以上版本

SLES/OpenSUSE

15.4及以上版本

Ubuntu

22.0及以上版本

Alibaba Cloud Linux

Alibaba Cloud Linux 3

說明

關於Alibaba Cloud Linux 3系統通過/proc/cpuinfo擷取CPU頻率的最佳化說明,請參見通過/proc/cpuinfo擷取CPU頻率最佳化說明

問題原因

為最佳化系統效能和CPU響應速度,Linux核心在5.11版本之後合入了patch(commit ID: 3fcd6a230fa7d03bffcb831a81b40435c146c12b)。

 x86/cpu: Avoid cpuinfo-induced IPIing of idle CPUs
    Currently, accessing /proc/cpuinfo sends IPIs to idle CPUs in order to
    learn their clock frequency.  Which is a bit strange, given that waking
    them from idle likely significantly changes their clock frequency.
    This commit therefore avoids sending /proc/cpuinfo-induced IPIs to
    idle CPUs.

當訪問/proc/cpuinfo時,將通過rcu_is_idle_cpu函數判斷當前CPU是否處於idle(閑置)狀態,如果CPU處於idle狀態,則直接返回min_freq(預設核心定義的是800 MHz,有些核心版本擷取的是CPU基頻)。

解決方案

說明

在閑置狀態下,只是顯示的頻率不符合預期,實際規格還是能夠達到規格定義的頻率,不影響使用和效能。

通過cpupowerturbostat等工具擷取準確的頻率資訊。

本文以cpupower工具擷取頻率資訊為例。

sudo cpupower frequency-info

結果如下所示,當前的CPU頻率為3200 MHz。

[ecs-user@iZ2zxxx187kyZ ~]$ sudo cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency:  Cannot determine or is not supported.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 3.20 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
重要

部分執行個體規格不支援通過上述方式查詢CPU頻率,請以執行個體規格類型系列中具體執行個體的主頻為準。