如何以瓦特为单位找到功率消耗?

spe*_*ool 59 linux power-management

我被要求估算我为实验室运行的服务器的功耗。我想我会问是否有一些方便的 Linux 命令行来获取服务器的功耗。它看起来powertop对最小化功耗很有用,但它似乎没有显示服务器 A 正在使用 B 瓦的信息。

/proc 系统中是否有什么可以帮助我的东西?

Ada*_*ski 31

如果您的计算机实际上跟踪电源(例如笔记本电脑),那么在内核 3.8.11 上您可以使用以下命令。它返回以微瓦为单位测量的功率。

cat /sys/class/power_supply/BAT0/power_now
Run Code Online (Sandbox Code Playgroud)

这适用于内核 3.8.11(Ubuntu Quantal 主线通用)。

  • 它实际以 µW 为单位,可以按照瓦特这样打印:`awk '{print $1*10^-6 " W"}' /sys/class/power_supply/BAT0/power_now` (12认同)
  • 如果你的系统在 `/sys/class/power_supply/BAT0/` 中没有文件 `power_now`,你可以将文件 `current_now` 和该目录中的 `voltage_now` 中的值相乘得到 `power_now`(不t 忘记相应地转换单位,两个文件都使用 µ 单位)。 (2认同)
  • 我的`/sys/class/power_supply` 目录@ ArchLinux Dell 工作站是空的。还有其他选择吗? (2认同)

Man*_*d3r 20

另一个 KISS 解决方案完成了 Adam 的建议。这适用于没有power_now文件的人。(拱)

echo - | awk "{printf \"%.1f\", \
$(( \
  $(cat /sys/class/power_supply/BAT1/current_now) * \
  $(cat /sys/class/power_supply/BAT1/voltage_now) \
)) / 1000000000000 }" ; echo " W "
Run Code Online (Sandbox Code Playgroud)

报告以瓦特为单位的实际功率消耗,保留一位小数。

  • 仅当它有电池时才有效。 (5认同)
  • 如果你得到 `syntax error: operationand expected (error token is "* ")`,那么 `cat` 命令中的路径可能不存在。对于我在 Ubuntu 16.04 上,将 `BAT1` 的 2 实例更改为 `BAT*` 解决了这个问题。 (2认同)
  • 相同命令的另一个版本,处理充电情况: ```path="/sys/class/power_supply/BAT0"; 值=$(echo "scale=1; $(cat ${path}/current_now) * $(cat ${path}/Voltage_now) / 10^12" | bc); [[ $value == "0" ]] && echo "" || echo "${value}W"``` 我用它来显示 Linux Mint/Cinnamon 面板上的功耗,使用 Bash 传感器小程序。它要么显示瓦数,要么不显示任何内容。 (2认同)

Bil*_*hor 12

计算机通常不会跟踪它们正在绘制的电流。通常有可读的电压传感器。

功耗会随着时间的推移而有很大差异,具体取决于工作负载。现在,当负载较低时,CPU 会节流。磁盘空闲时将关闭。像 powertop 这样的工具将跟踪触发功耗增加的进程。其他工具将积极调整功耗。

UPS 关心功耗并且通常具有可访问的数据。

制造商的规格会给你一些功耗的概念,但硬件的重新配置可以改变功耗。这可能是一个开始和估计的好地方。添加新设备或更换现有设备可能会改变电力负载。

Kill-A-Watt 等设备可用于测量功耗。但是,它们需要断开设备,以便电源通过设备。

您可能想投资或借用一个电流表,该电流表通过夹住电线来工作。这将允许您计算伏安。这通常与服务器的瓦数不同(更高)。

  • 启动负载可能明显高于运行负载。在之前的项目中,我们会在完全关闭的启动过程中烧断断路器盒中的保险丝。在正常使用期间,我们的负载约为保险丝额定值的 30%。 (2认同)

Man*_*d3r 12

freedektop 的 upower 可以胜过 dbus。我的笔记本电脑需要 8 到 12 瓦的功率。好的。

  • 好招!更具体地说,`upower -d`。 (7认同)

gee*_*aur 5

我认为大多数服务器不会内省其功耗,至少不会以 Linux 可以访问的形式内省。您可能会更幸运地查询服务器的 LOM 模块(如果有),但我通常从远程电源板获取此类信息。