从/ proc / cpuinfo获取TSC频率

问题描述 投票:2回答:3

我想知道Linux系统上的TSC频率。从/ proc / cpuinfo中读取,在“型号名称”和“ cpu MHz”行中获得了不同的频率。例如,在具有4个HT内核的i7内核中,我得到了:

model name  : Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
cpu MHz     : 1600.000

哪个是正确的TSC频率? 3.4 GHz或1.6 GHz?

我只是假设使用新的处理器,因此可变的TSC频率不是问题。

“ cpu MHz”是处理器的当前频率吗?我的意思是,这个值可以根据CPU负载而变化吗?

编辑:我编写了一个简单的程序来计算TSC频率(使用用time()测量的长时间),并在3.4 GHz机器中获得3502 MHz(大约)。因此,要么Linux time()函数不是非常精确,要么TSC比声称的3.4 GHz更快。

所以,有人知道/ proc / cpuinfo是否可靠吗?

linux cpu
3个回答
1
投票

以下链接下的问题完全相同:测得的tsc 3502 cpu频率3400Mhz

https://software.intel.com/en-us/forums/topic/284137

通过在BIOS中关闭自动超频来解决


0
投票

在我的服务器上:

$ cat /proc/cpuinfo  | grep "model name\|cpu MHz"
model name      : Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
cpu MHz         : 2699.804

2.50GHz是TSC频率,而2699.804是当前频率。

您也可以使用turbostat获取TSC频率和当前频率。

Bzy_MHz CPU闲置(即处于“ c0”状态)时的平均时钟速率。

TSC_MHz TSC在整个时间间隔内运行的平均MHz。

https://manpages.debian.org/testing/linux-cpupower/turbostat.8.en.html

$ sudo turbostat --interval 1
     CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz CoreTmp  PkgTmp
       -       2    0.07    2671    2501      48      48
       0       4    0.15    2703    2502      44      46
      48       0    0.00    2644    2502
       1       3    0.13    2703    2502      44
      49       0    0.00    2569    2502
       2       1    0.05    2700    2502      45
      50       0    0.01    2670    2502
       3       1    0.05    2707    2502      44

-1
投票
Is "cpu MHz" the current frequency of the processor?  I mean, Can this value change according to the CPU load?

是,cpu MHz是该内核的当前频率。 3.40GHz是制造商指定的最大频率(可以通过超频获得更高的频率)。

工作频率的变化称为CPU频率缩放。它使操作系统可以向上或向下扩展CPU频率,以节省电量。可以根据系统负载自动缩放CPU频率,以响应ACPI事件,也可以通过用户空间程序手动缩放。

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.