我的意思是确定时钟速度。我在下面发布了此处列出的各种命令的输出。
对于最大频率,我看到 4 个不同的源,有 2 个不同的值:
CPU max MHz: 3300,0000
从lscpu
。capacity: 3300MHz
从lshw
。capacity: 3800MHz
从sudo lshw
。Max Speed: 3800 MHz
从dmidecode
。对于当前频率,我看到 4 个不同的源,大约有 3 个不同的值:
CPU MHz: 2100.000
从lscpu
。cpu MHz : 1691
(由我平均)从cat /proc/cpuinfo
.Current Speed: 2600 MHz
从dmidecode
。Detected 2594.332 MHz processor
从cat /var/log/dmesg
。我的观察:
lshw
带或不带 会给出不同的结果sudo
。这是预期的吗?哪个应该被认为更可靠,为什么?注意:正如@hobbs的适当要求,这个OP的动机是需要理解“时钟速度”(无论对应哪个变体)、CPU频率规格和内存速度规格之间的关系(这里也可能有多个值,请参见例如dmidecode 显示内存模块电压:DDR3 RAM 为 3.3 V)。
输出:
$ lscpu | grep "MHz"
CPU MHz: 2100.000
CPU max MHz: 3300,0000
CPU min MHz: 1200,0000
$ cat /proc/cpuinfo | grep "MHz"
cpu MHz : 1753.417
cpu MHz : 1200.000
cpu MHz : 2212.235
cpu MHz : 1600.000
$ lshw -c cpu | grep capacity
WARNING: you should run this program as super-user.
capacity: 3300MHz
$ sudo lshw -c cpu | grep capacity
capacity: 3800MHz
$ sudo dmidecode -t processor | grep "Speed"
Max Speed: 3800 MHz
Current Speed: 2600 MHz
$ cat /var/log/dmesg | grep "MHz processor"
[ 0.000000] kernel: tsc: Detected 2594.332 MHz processor
$ cat /var/log/kern.log | grep "MHz processor"
Run Code Online (Sandbox Code Playgroud)
以下推论完全是基于我自己的实验和推断。此外,部分推导是将这些数字与 CPU 制造商报告的官方时钟速度进行比较。
此命令显示每个处理器核心的当前时钟:(所有后续命令在 Intel Atom C3558 CPU 上运行)
$ cat /proc/cpuinfo | grep "MHz"
cpu MHz : 1260.714
cpu MHz : 1070.646
cpu MHz : 1124.995
cpu MHz : 1234.689
Run Code Online (Sandbox Code Playgroud)
此命令显示内核之间的当前“平均”时钟(根据我自己的观察,纯粹基于试验)CPU MHz
和最大正常时钟(CPU max MHZ
)。
$ lscpu | grep "MHz"
CPU MHz: 1181.650
CPU max MHz: 2200.0000
CPU min MHz: 800.0000
Run Code Online (Sandbox Code Playgroud)
请注意,当前时钟速度(平均时钟速度和每个内核的时钟速度)随时间变化很大(可能每秒多次),因为系统通常会连续限制 CPU 时钟以实现节能(低至CPU min MHZ
)。我相信 CPU 核心之间的差异也是正常的。
此命令还显示最大正常时钟(capacity
- 应与上面相同CPU max MHz
)。
$ lshw -c cpu | grep capacity
WARNING: you should run this program as super-user.
capacity: 2200MHz
Run Code Online (Sandbox Code Playgroud)
然而,对于我的Intel Atom CPU,只有在没有sudo
(2200 MHz) 的情况下才能正确报告。使用 时sudo
,它会报告更高的数字(在本例中也是 3800 - 这可能是最大提升时钟,但我不确定在 Atom CPU 的情况下):
$ sudo lshw -c cpu | grep capacity
capacity: 3800MHz
Run Code Online (Sandbox Code Playgroud)
对于Broadcom ARM CPU(在 Raspberry Pi 4 上),无论是否使用 sudo,该值都是相同的 (1500 MHZ)。我猜这是因为 Pi Arm CPU 没有 boost/turbo 模式。
更新了答案:有什么方法可以检查我的处理器的时钟速度?
但总而言之:
上面的所有命令还将为您提供当前的 cpu 赫兹,这意味着,如果您希望在 lscpu 上看到相同的频率,并且在执行 cat /proc/cpuinfo 时这几乎是不可能的。您可以比较最大值,因为对于您可以分析 CPU 的任何方式来说,它都应该显示相同的结果,但在您执行它时,电流始终是字面上的“当前 CPU 赫兹”。
最后请注意,dmidecode 从 ACPI 表中读取信息,这并不总是与其他工具完成的实时信息相同。
所以你有几种方法来获取当前的真实CPU,然后你还有方法来获取ACPI表注册的内容(在我的例子中这是非常错误的)。
这就是为什么如果多次运行 lscpu,当前速度总是会改变,/proc/cpuinfo 也是如此。但对于 dmidecode 它将(在许多情况下)保持相同的值,即使该值是误报。
归档时间: |
|
查看次数: |
4468 次 |
最近记录: |