cpu降頻問題


cpu做為能耗很高的硬件,最近幾年廠商在節能方面做了很多處理,在服務器運行時,基於負載情況可調節成節能模式,節省電能,副作用是cpu的頻率會降低,導致應用程序性能降低。

有第三方統計,服務器規模達到萬台以上時,最大的成本消耗其實是電能

bios 設置

一般服務器的BIOS設置中會有一項來說明是否開啟cpu節能模式

alt

但是我們發現有些服務器即使關閉了cpu節能,還是會有被降頻的情況。

操作系統

操作系統也能對cpu頻率進行調整,主要有兩個工具

X86_ENERGY_PERF_POLICY

x86_energy_perf_policy 是紅帽提供設置intel cpu節能模式的工具,默認我們服務器都是normal模式,我們要想獲取最高性能要開啟性能模式。

x86_energy_perf_policy performance 

它是通過msr cpu寄存器來調整cpu頻率,基本就是寫/dev/cpu/*/msr這個設備

參考 http://www.centosabc.com/archives/844

服務器上我們已經調整了此參數,但是還是有機器出現降頻情況。最后發現在centos7中還有一個工具可以調節cpu頻率,就是cpupower。

cpupower

cpupower是centos7上(實際上是在3.04內核后)引入的一個工具,用於在用戶態微調cpu頻率。

x86_energy_perf_policy 可理解為“硬調節”,cpupower屬於“微調”

調整cpu頻率無非就是要在“能耗”和“性能”上取得平衡,基本上調整的策略有以下幾種。

alt

而在centos7上有一個kernel-tools的包,提供一些工具來調整和查看cpu的狀態

/etc/sysconfig/cpupower
/usr/bin/centrino-decode
/usr/bin/cpupower
/usr/bin/powernow-k8-decode
/usr/bin/tmon
/usr/bin/turbostat
/usr/bin/x86_energy_perf_policy
/usr/lib/systemd/system/cpupower.service 

我們默認的策略是這樣

cpupower frequency-info --policy
analyzing CPU 0: 1200000 3200000 powersave 

powersave運行最小頻率,當然cpu也會根據使用繁忙程度來升頻率,有可能它的算法沒有那么智能,導致你要用cpu時候,它還沒來得及升上來。 注意這個文件“/usr/lib/systemd/system/cpupower.service”,說明cpupower已經變成一個服務了,再看下這個文件“/etc/sysconfig/cpupower”

# See "cpupower help" and cpupower(1) for more info CPUPOWER_START_OPTS="frequency-set -g performance" CPUPOWER_STOP_OPTS="frequency-set -g ondemand 

說明只要啟動這個服務,默認就調整成performance模式了。

systemctl start cpupower 

其它

查看當前cpu策略

cpupower frequency-info --policy 

修改策略

cpupower frequency-set -g powersave 

實時查看cpu頻率

watch -n 1 "cat /proc/cpuinfo | grep MHz" 

內核信息查看

#使用的intel驅動

/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 

#intel_pstate驅動詳細信息

/sys/devices/system/cpu/intel_pstate/ 

#各種頻率相關

/sys/devices/system/cpu/cpu0/cpufreq/ 

#查看當前cpu策略

/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 

本文鏈接:http://opsdev.cn/post/cpujiangpin.html?winzoom=1


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM