Files
a13labs.infra/scripts/cpu_power_monitor.py
T

33 lines
914 B
Python
Raw Normal View History

import time
import os
RAPL_PATH = "/sys/class/powercap/intel-rapl:0/energy_uj"
def read_energy():
try:
with open(RAPL_PATH, "r") as f:
return int(f.read().strip())
except FileNotFoundError:
print(f"Error: {RAPL_PATH} not found.")
exit(1)
def calculate_power(interval=1.0):
print(f"Monitoring CPU package power every {interval} second(s)... (Ctrl+C to stop)")
while True:
energy_before = read_energy()
time.sleep(interval)
energy_after = read_energy()
delta_uj = energy_after - energy_before
power_watts = (delta_uj / 1_000_000) / interval
print(f"Power Usage: {power_watts:.2f} Watts")
if __name__ == "__main__":
if os.geteuid() != 0:
print("Please run this script as root.")
exit(1)
try:
calculate_power(interval=1.0)
except KeyboardInterrupt:
print("\nStopped.")