在Linux系统中查看CPU的功耗限制(如TDP、PL1/PL2等)通常需要结合内核接口或特定工具。以下是几种常用方法:
cpupower
工具# 安装cpupower(如未安装)
sudo apt install linux-tools-common linux-tools-generic # Debian/Ubuntu
sudo yum install kernel-tools # RHEL/CentOS
# 查看CPU频率和功耗策略
sudo cpupower frequency-info
sudo cpupower monitor
msr
内核模块:
bash
sudo modprobe msr
sysfs
接口(Intel/AMD CPU)Intel CPU的功耗限制通常通过/sys/devices/virtual/powercap/intel-rapl/
暴露:
# 查看RAPL(Running Average Power Limit)设置
ls /sys/devices/virtual/powercap/intel-rapl/intel-rapl:*/constraint_*_power_limit_uw
# 示例:读取当前PL1(长时功耗限制)和PL2(短时功耗限制)
cat /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_0_power_limit_uw # PL1 (μW)
cat /sys/devices/virtual/powercap/intel-rapl/intel-rapl:0/constraint_1_power_limit_uw # PL2 (μW)
_uw
表示微瓦(μW),需除以10^6得到瓦特(W)。turbostat
(Intel专用)# 安装turbostat
sudo apt install linux-tools-common # Debian/Ubuntu
sudo yum install kernel-tools # RHEL/CentOS
# 运行turbostat(需root权限)
sudo turbostat --show PkgWatt --interval 5
PkgWatt
列显示当前封装功耗,PkgTDP
为TDP设计值。sensors
(需lm-sensors
)# 安装并检测硬件传感器
sudo apt install lm-sensors # Debian/Ubuntu
sudo yum install lm_sensors # RHEL/CentOS
sudo sensors-detect
sudo service kmod start
# 查看CPU功耗(部分硬件支持)
sensors
Package power
或TDP
信息。/proc/cpuinfo
(基础信息)cat /proc/cpuinfo | grep -i 'model name'
对于AMD Ryzen/EPYC处理器,可使用:
# 安装rocmon(部分发行版可能需要编译)
git clone https://github.com/hybridos/rocmon
cd rocmon && make
sudo ./rocmon --power
root
权限或sudo
。通过上述方法,您可以获取CPU的TDP设计值、实时功耗及动态限制(如Intel的PL1/PL2)。如需更详细分析,建议结合perf
或厂商专用工具(如Intel PCM)。