有没有办法在命令行上返回当前的瓦特消耗?我已经找到了 powertop 程序,但还没有找到将瓦特消耗作为值返回到命令行的方法。我正在考虑一些我可以cat
或grep
.
答案1
在我的系统上,我可以从电池获取电力
cat /sys/class/power_supply/BAT0/power_now
9616000
在 ThinkPad 上,如果tp_smapi
模块已加载,则文件
cat /sys/devices/platform/smapi/BAT0/power_now
不过,该值似乎以 µW 为单位。您可以使用任何您喜欢的工具对其进行转换,例如awk
:
awk '{print $1*10^-6 " W"}' /sys/class/power_supply/BAT0/power_now
9.616 W
如果您在 sysfs 文件系统中找不到该位置,您可以搜索它:
find /sys -type f -name power_now 2>/dev/null
此外,该包lm-sensors
还可用于确定某些机器上的系统电源使用情况:
# sensors power_meter-acpi-0
power_meter-acpi-0
Adapter: ACPI interface
power1: 339.00 W (interval = 1.00 s)
答案2
我的笔记本电脑没有这些(目前也没有电池),但它确实有一个“powercap”设备。
看来这个装置能够对用户的电量进行限制。
它(自然)可以读取功耗以强制执行它们。
功耗可以在energy_uj
文件中找到,即:
cat /sys/class/powercap/*/energy_uj
它将以微焦耳为单位显示讲座(或多个讲座,如果您有许多 powercap 设备)。这实际上是一个柜台所消耗的能量,因此您需要将其除以时间增量才能获得功率。
这是我的笔记本电脑消耗的电量,还是其中的一部分?我不知道。
答案3
sudo tlp-stat -b
它将显示当前的功耗(以毫瓦为单位)。
--- TLP 1.1 --------------------------------------------
+++ Battery Status
/sys/class/power_supply/BAT1/manufacturer = SANYO
/sys/class/power_supply/BAT1/model_name = L12S3F01
/sys/class/power_supply/BAT1/cycle_count = 16
/sys/class/power_supply/BAT1/energy_full_design = 32560 [mWh]
/sys/class/power_supply/BAT1/energy_full = 16180 [mWh]
/sys/class/power_supply/BAT1/energy_now = 16090 [mWh]
/sys/class/power_supply/BAT1/power_now = 0 [mW]
/sys/class/power_supply/BAT1/status = Unknown
Charge = 99.4 [%]
Capacity = 49.7 [%]
答案4
对于非电池驱动的机器尝试- 它显示每个已识别设备在最后毫秒(通常为 1 秒;N、M 是整数)cat /sys/class/hwmon/hwmonN/device/powerM_average
内的平均功耗(以 mW为单位)。/sys/class/hwmon/hwmonN/device/powerM_average_interval
在现代双插槽服务器上,通常 N = {0..2},每个 CPU 包都有一个监视器,所有 PSU 一起有一个监视器(检查powerM_oem_info
)。您可能需要加载acpi_power_meter
内核模块才能获取相关信息。