redhat 查看CPU frequency scaling(CPU頻率縮放)


CPU頻率縮放使操作系統可以向上或向下縮放CPU頻率,以節省電量。可以根據系統負載,響應ACPI事件自動縮放CPU頻率,也可以通過用戶空間程序手動縮放CPU頻率。

CPU頻率縮放在Linux內核中實現,基礎架構稱為cpufreq。從內核3.4開始,必需的模塊會自動加載,並且默認情況下會啟用推薦的按需調控器。但是,為您的桌面環境提供的用戶空間工具(如cpupower,acpid,筆記本電腦模式工具或GUI工具)仍可用於高級配置。

CPU動態節能技術用於降低服務器功耗,通過選擇系統空閑狀態不同的電源管理策 略,可以實現不同程度降低服務器功耗,更低的功耗策略意味着CPU喚醒更慢對性能 影響更大。對於對時延和性能要求高的應用,建議關閉CPU的動態調節功能,禁止 CPU休眠,並把CPU頻率固定到最高。通常建議在服務器BIOS中修改電源管理為Performance,如果發現CPU模式為conservative或者powersave,可以使用cpupower設置CPU Performance模式,效果也是相當顯著的。


CPU優化建議使用cpupower設置CPU Performance模式
 

cpufreq的五種模式

cpufreq是一個動態調整cpu頻率的模塊,系統啟動時生成一個文件夾/sys/devices/system/cpu/cpu0/cpufreq/,里面有幾個文件,其中scaling_min_freq代表最低頻率,scaling_max_freq代表最高頻率,scalin_governor代表cpu頻率調整模式,用它來控制CPU頻率。


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

affected_cpus
bios_limit
cpuinfo_cur_freq
cpuinfo_max_freq
cpuinfo_min_freq
cpuinfo_transition_latency
freqdomain_cpus
related_cpus
scaling_available_frequencies
scaling_available_governors
scaling_cur_freq
scaling_driver
scaling_governor
scaling_max_freq
scaling_min_freq
scaling_setspeed

# 查看當前的調節器
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
conservative

# 查看頻率信息
cpupower frequency-info

analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 10.0 us
  hardware limits: 800 MHz - 2.10 GHz
  available frequency steps:  2.10 GHz, 2.10 GHz, 2.00 GHz, 1.90 GHz, 1.80 GHz, 1.70 GHz, 1.60 GHz, 1.50 GHz, 1.40 GHz, 1.30 GHz, 1.20 GHz, 1.10 GHz, 1000 MHz, 900 MHz, 800 MHz
  available cpufreq governors: conservative userspace powersave ondemand performance
  current policy: frequency should be within 800 MHz and 2.10 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: Unable to call hardware
  current CPU frequency: 2.10 GHz (asserted by call to kernel)
  boost state support:
    Supported: yes
    Active: yes
  1. performance: 顧名思義只注重效率,將CPU頻率固定工作在其支持的最高運行頻率上,而不動態調節。
  2. Userspace:最早的cpufreq子系統通過userspace governor為用戶提供了這種靈活性。系統將變頻策略的決策權交給了用戶態應用程序,並提供了相應的接口供用戶態應用程序調節CPU 運行頻率使用。也就是長期以來都在用的那個模式。可以通過手動編輯配置文件進行配置
  3. powersave: 將CPU頻率設置為最低的所謂“省電”模式,CPU會固定工作在其支持的最低運行頻率上。因此這兩種governors 都屬於靜態governor,即在使用它們時CPU 的運行頻率不會根據系統運行時負載的變化動態作出調整。這兩種governors 對應的是兩種極端的應用場景,使用performance governor 是對系統高性能的最大追求,而使用powersave governor 則是對系統低功耗的最大追求。
  4. ondemand: 按需快速動態調整CPU頻率, 一有cpu計算量的任務,就會立即達到最大頻率運行,等執行完畢就立即回到最低頻率;ondemand:userspace是內核態的檢測,用戶態調整,效率低。而ondemand正是人們長期以來希望看到的一個完全在內核態下工作並且能夠以更加細粒度的時間間隔對系統負載情況進行采樣分析的governor。 在 ondemand governor 監測到系統負載超過 up_threshold 所設定的百分比時,說明用戶當前需要 CPU 提供更強大的處理能力,因此 ondemand governor 會將CPU設置在最高頻率上運行。但是當 ondemand governor 監測到系統負載下降,可以降低 CPU 的運行頻率時,到底應該降低到哪個頻率呢? ondemand governor 的最初實現是在可選的頻率范圍內調低至下一個可用頻率,例如 CPU 支持三個可選頻率,分別為 1.67GHz、1.33GHz 和 1GHz ,如果 CPU 運行在 1.67GHz 時 ondemand governor 發現可以降低運行頻率,那么 1.33GHz 將被選作降頻的目標頻率。
  5. conservative: 與ondemand不同,平滑地調整CPU頻率,頻率的升降是漸變式的,會自動在頻率上下限調整,和ondemand的區別在於它會按需分配頻率,而不是一味追求最高頻率;

cpupower設置performance

從conservative或者powersave切換到performance的效果還是杠杠的

# CentOS 安裝 kernel-tools
yum install kernel-tools

# Ubuntu 安裝 CPU 模式無圖形化切換器
apt install cpufrequtils

# cpupower設置performance
cpupower frequency-set -g performance

# 查看當前的調節器
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
performance
 


作者:王奧OX
鏈接:https://www.jianshu.com/p/e1a37771c68e

擴展閱讀

CPU frequency scaling - https://wiki.archlinux.org/index.php/CPU_frequency_scaling

華為2288Hv5服務器如何開啟CPU Performance與Turbostat - https://www.xxshell.com/2886.html


免責聲明!

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



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