なぜlscpu CPU MHz != dmidecode現在の速度ですか?

なぜlscpu CPU MHz != dmidecode現在の速度ですか?

次の例では、2つの異なるコマンドを使用してCPU(Xeon E5-2690 v3)の現在の速度を取得しようとしますが、異なる値(2.6Ghzと3.1GHz)を報告します。

[root@localhost]# lscpu | grep MHz
CPU MHz:               3099.992
[root@localhost]# dmidecode -t processor | grep Speed
        Max Speed: 4000 MHz
        Current Speed: 2600 MHz

この値はなぜ違うのですか?私のCPU 2.6または3.1の速度はどのくらいですか?

答え1

CPUの定格速度は次のとおりです。4000MHz、絵が示すようにdmidecode。確認を使用するとlscpu実行中です。3099MHz

負荷が低い場合、CPUはエネルギーを節約し、発熱を維持するために低速で動作します。

答え2

DmidecodeはACPIテーブル(BIOSの一部)から値を読み取ります。少なくともdmidecodeのマニュアルページによると、ACPIテーブルは常に正しいとは限りません。 lscpuはおそらくCPUから数を取得するsysfsから値を読み取るでしょう。

関連情報