Linux
如何測量linux中的平均cpu頻率?
我正在嘗試測量啟用 DVFS 的 cpu 中特定間隔的平均 cpu 頻率,定期採樣 /proc/cpuinfo 的明顯方式有非常大的變體。cpufreq-stats 驅動程序給了我一些希望,例如
貓 /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state 2600000 118148 2000000 8562 1600000 11041 1200000 3428602 #很多滴答是空閒滴答
但不幸的是,它與空閒滴答聲混在一起(請參閱更新檔“跟踪 time_in_state 時不要考慮空閒時間”)。在空閒時間,cpu 很可能會回落到最低頻率,從而顯著扭曲頻率分佈。
上面的更新檔利用 account_idle_tick 函式從靜態中刪除空閒刻度,但它似乎只適用於 xen 核心。是否有替代方法來測量平均 CPU 頻率?
新的開發版本Sysstat 9.1.6包括一個新選項(-m FREQ)來報告平均 cpu 頻率,例如
$ sar -m FREQ -P ALL 0 Linux 2.6.30.10-105.2.23.fc11.i686.PAE (palmer.localdomain) 10/23/2010 _i686_ (2 CPU) 02:36:09 PM CPU wghMHz 02:36:09 PM all 1042.23 02:36:09 PM 0 1039.43 02:36:09 PM 1 1166.65
平均權重是在該頻率上花費的時間,例如在 10 秒報告間隔中,前 8 秒頻率為 1GHz,最後 2 秒為 2GHz,然後平均頻率為 1.2GHz