Linux/Power Report: Difference between revisions

From Omnia
Jump to navigation Jump to search
No edit summary
 
Line 3: Line 3:
<markdown>
<markdown>


Ran terminal command: echo "--- 1 ---"; ipmitool sensor get "PW Consumption" 2>/dev/null | grep -E "Sensor Reading|Sensor ID"; echo "--- 2 ---"; ipmitool dcmi power reading 2>/dev/null | grep Instantaneous; echo "--- 3 ---"; ipmitool sdr type "Power Supply" 2>/dev/null; echo "--- 4 ---"; nvme get-feature /dev/nvme0 -f 0x02 -H 2>/dev/null | grep "Power State"; echo "--- 5 ---"; nvme smart-log /dev/nvme0 2>/dev/null | grep -iE "^temperature|Warning Temperature Time|Critical Composite"
Ran terminal command:
```
echo "--- 1 ---"; ipmitool sensor get "PW Consumption" 2>/dev/null | grep -E "Sensor Reading|Sensor ID"; echo "--- 2 ---"; ipmitool dcmi power reading 2>/dev/null | grep Instantaneous; echo "--- 3 ---"; ipmitool sdr type "Power Supply" 2>/dev/null; echo "--- 4 ---"; nvme get-feature /dev/nvme0 -f 0x02 -H 2>/dev/null | grep "Power State"; echo "--- 5 ---"; nvme smart-log /dev/nvme0 2>/dev/null | grep -iE "^temperature|Warning Temperature Time|Critical Composite"
```


All verified. Here are the exact commands.
All verified. Here are the exact commands.

Latest revision as of 08:10, 20 August 2026

Power Reports

Ran terminal command:

echo "--- 1 ---"; ipmitool sensor get "PW Consumption" 2>/dev/null | grep -E "Sensor Reading|Sensor ID"; echo "--- 2 ---"; ipmitool dcmi power reading 2>/dev/null | grep Instantaneous; echo "--- 3 ---"; ipmitool sdr type "Power Supply" 2>/dev/null; echo "--- 4 ---"; nvme get-feature /dev/nvme0 -f 0x02 -H 2>/dev/null | grep "Power State"; echo "--- 5 ---"; nvme smart-log /dev/nvme0 2>/dev/null | grep -iE "^temperature|Warning Temperature Time|Critical Composite"

All verified. Here are the exact commands.

Chassis power (BMC / IPMI)

# Current draw — single number
ipmitool sensor get "PW Consumption"
#   Sensor Reading : 342 (+/- 0) Watts

# Current draw + historical min/max/avg over the sampling window
ipmitool dcmi power reading
#   Instantaneous power reading:  342 Watts
#   Minimum during sampling period: 144 Watts
#   Maximum during sampling period: 580 Watts
#   Average power reading:          211 Watts

# Is a power cap configured?
ipmitool dcmi power get_limit          # → "not returned (80)" = unsupported here

# All voltage/power rails at once
ipmitool sdr elist full | grep -iE "watt|power|current|amp|volt"

Power supply health

# PSU status — this is what found the failed PSU
ipmitool sdr type "Power Supply"
#   PS1 Status | C0h | ok | 10.1 | Presence detected, Failure detected, Power Supply AC lost
#   PS2 Status | C1h | ok | 10.2 | Presence detected

# Detail on one PSU
ipmitool sensor get "PS1 Status"

# Historical power events
ipmitool sel list | grep -iE "power|supply"

# Full event log minus login noise
ipmitool sel list | grep -viE "session audit" | tail -25

Drive power (NVMe — declared, not measured)

# Declared max power per power state
nvme id-ctrl /dev/nvme0 -H | grep -A2 "^ps  "
#   ps 0 : mp:25.00W  idle_power:5.00W  active_power:25.00W

# Which power state is currently active
nvme get-feature /dev/nvme0 -f 0x02 -H
#   Power State (PS): 0

Drive thermal / throttle proxies

Since watts aren't readable per-drive, these are the indicators that the drive hit its power limit:

# Live temps + throttle counters
nvme smart-log /dev/nvme0 | grep -iE "^temperature|Warning Temperature Time|Critical Composite|Temperature Sensor"

# Thresholds to compare against
nvme id-ctrl /dev/nvme0 | grep -iE "^wctemp|^cctemp"     # 350K=77°C warn, 358K=85°C critical
nvme get-feature /dev/nvme0 -f 0x04 -H                    # over-temp threshold

Current reading, 11 min into the run:

temperature                          : 43 °C
Warning Temperature Time             : 0
Critical Composite Temperature Time  : 0
Temperature Sensor 3                 : 68 °C

Both throttle counters still zero, so the drive is not power/thermal limited.

The continuous sampler

The script combining all of the above is at smartmon.sh, writing fsync'd rows every 10 s to smart_monitor.csv. The two power fields in it are:

ipmitool dcmi power reading | awk '/Instantaneous/{print $4}'
nvme get-feature /dev/nvme0 -f 0x02 | grep -oE 'Current value:[0-9a-fx]+' | cut -d: -f2

Quick analysis of the collected data:

# Peak chassis watts observed
awk -F, 'NR>1 && $16+0>m {m=$16+0} END{print m" W"}' smart_monitor.csv

# Any row where a warning fired
awk -F, 'NR>1 && ($2!=0 || $8!=0 || $9!=0)' smart_monitor.csv