我被要求估计我实验室运行的服务器的功耗。我想我应该问是否有一些方便的 Linux 命令行来获取服务器的功耗。它看起来powertop
对于最大限度地减少功耗很有用,但它似乎没有显示服务器 A 使用 B 瓦的信息。
/proc 系统中是否埋藏着一些可以帮助我的东西?
答案1
如果您的计算机确实跟踪电源(例如笔记本电脑),那么在内核 3.8.11 上您可以使用以下命令。它返回以微瓦为单位的功率。
cat /sys/class/power_supply/BAT0/power_now
这适用于内核 3.8.11(Ubuntu Quantal 主线通用)。
答案2
另一个 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 "
报告实际功耗(以瓦为单位,保留一位小数)。
答案3
计算机通常不跟踪它们所消耗的电流。通常存在可读的电压传感器。
根据工作负载的不同,功耗会随时间变化很大。现在,当负载较低时,CPU 会降低速度。空闲时磁盘将关闭。像 powertop 这样的工具将跟踪触发功耗增加的进程。其他工具将积极降低功耗。
UPS 关心功耗并且通常具有可访问的数据。
制造商的规格会让您对功耗有所了解,但是硬件的重新配置可以改变功耗。这可能是一个开始和估计的好地方。添加新设备或更换现有设备可能会改变电力负载。
Kill-A-Watt 等设备可用于测量功耗。但是,它们需要断开设备的连接,以便电源通过设备。
您可能想投资或借用一个通过夹住电线来工作的电流表。这将允许您计算伏安。这通常与服务器的瓦数不同(更高)。
答案4
我认为大多数服务器不会内省其功耗,至少不会以 Linux 可以访问的形式内省。您可能会更幸运地查询服务器的 LOM 模块(如果有),但我通常从远程电源板获取此类信息。