在 Linux 上查看 CPU 速度的正确方法是什么?

在 Linux 上查看 CPU 速度的正确方法是什么?

我发现有两个命令可以输出有关我的 CPU 的信息:cat /proc/cpuinfolscpu/proc/cpuinfo显示我的 CPU 速度是 2.1 Ghz,而lspcu说是 3167 Mhz。哪一个是正确的?

cat /proc/cpuinfo这是我的处理器速度的确切输出:

model name  : Intel(R) Core(TM) i7-4600U CPU @ 2.10GHz

这是来自lscpu

CPU MHz:               3225.234

(由于某种原因,lscpu每次输出都不同,在 3100 到 3300 MHz 之间变化)

答案1

要查看每个核心的当前速度,我这样做:

watch -n.1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

笔记:

这不适用于 Intel Xeon 系列等服务器 CPU。在此类机器上,它将仅显示基本频率。要显示 Turbo 频率,您需要 cpupower 或 Turbostat。请参阅@Maxim Egorushkin 的回答。

如果您的watch命令不适用于小于一秒的间隔,请修改间隔,如下所示:

watch -n1 "grep \"^[c]pu MHz\" /proc/cpuinfo"

这会cpu speed实时显示每个核心的性能。

通过运行以下命令一次或多次,从另一个终端可以看到上述watch命令的速度变化,假设SpeedStep已启用(Cool'n'Quietfor AMD)。

echo "scale=10000; 4*a(1)" | bc -l &

(此命令用于bc计算pi到 10000 个位置。)

答案2

对于基于 intel i3、i5 和 i7 的 cpu,有一个名为的专用工具i7z,可以显示所有 cpu 内核的当前速度。

从手册页(描述):

i7z 运行基于 ncurses 的 i7z 程序,无需任何选项。 i7z 将打印基于 Intel i3、i5 和 i7 的 Core 处理器(包括 Nehalems、Sandy Bridge 和 Ivy Bridge)的 C 状态和温度。

对于基于 ubuntu 的发行版,您可以通过发出以下命令来安装它:

sudo apt-get install i7z

然后运行它(工具需要使用 sudo 运行):

sudo i7z

答案3

英特尔酷睿 i7-4600U 处理器支持涡轮增压技术。它的基本频率为 2.10GHz,最大睿频频率为 3.30GHz。这意味着,

  • 如果禁用 Turbo Boost(在 BIOS 设置菜单中),CPU 将始终工作在 2.10GHz。
  • 当Turbo Boost启用并且只有一个核心工作时,CPU最高工作频率为3.30GHz。
  • 如果启用 Turbo Boost 并且所有核心都工作,CPU 将以 2.10GHz 工作。

获取当前频率

要确定 Turbo Boost 是否已激活以及当前频率是多少,您可以使用cpupower frequency-info。例如,对于启用 Turbo Boost 的旧版 Intel Core i5-660,您将获得以下信息。

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.20 GHz - 3.47 GHz
  available frequency steps: 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.20 GHz and 3.47 GHz.
              The governor "ondemand" may decide which speed to use
              within this range.
  current CPU frequency is 1.87 GHz.
  cpufreq stats: 3.47 GHz:82,67%, 3.33 GHz:0,00%, 2.53 GHz:0,00%, 1.87 GHz:0,06%, 1.20 GHz:17,28%  (3)
  boost state support:
    Supported: yes
    Active: yes
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

请注意,该信息指出了硬件限制 ( 1.20 GHz - 3.47 GHz)、可能的频率 ( 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz) 和当前频率 ( 1.87 GHz)。您可以在以下位置找到这些频率的技术信息:英特尔网站

TurboBoost 禁用时的频率

请注意在禁用 Turbo Boost 的情况下运行相同命令时的差异:在部分中,和的boost state support值为。在这里,CPU 将始终处于标称/最小值 (1.20Ghz)。SupportedActiveno

$ cpupower frequency-info
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us.
  hardware limits: 1.20 GHz - 3.47 GHz
  available frequency steps: 3.47 GHz, 3.33 GHz, 2.53 GHz, 1.87 GHz, 1.20 GHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 1.20 GHz and 3.47 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.20 GHz.
  cpufreq stats: 3.47 GHz:40,86%, 3.33 GHz:0,01%, 2.53 GHz:0,06%, 1.87 GHz:0,22%, 1.20 GHz:58,85%  (493)
  boost state support:
    Supported: no
    Active: no
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

您可以使用 BIOS 或某些方式禁用 Turbo BoostLinux 选项/命令。这内核支持可以使用该/sys/devices/system/cpu/cpufreq/boost文件启用/禁用。

答案4

要获取有关 CPU 的信息,请键入以下命令:

dmidecode -t processor | grep -i mhz

相关内容