Module 6 · Section 5 of 8
Case Study 6.4 - Data Center Energy Efficiency (PUE)
Computer Engineering
A colocation facility in Metro Manila tracks Power Usage Effectiveness (PUE = total facility power / IT power). You have a year of daily figures. Quantify the efficiency, model how much ambient temperature drives it, and flag the worst days.
from sklearn.linear_model import LinearRegression
np.random.seed(104)
days = pd.date_range("2023-01-01", periods=365, freq="D")
doy = np.arange(365)
it_kw = 820 + np.random.normal(0, 25, 365) # server load, fairly flat
ambient_c = 28 + 3 * np.sin(2 * np.pi * (doy - 110) / 365) + np.random.normal(0, 1.2, 365)
cooling_kw = 240 + 9 * (ambient_c - 25) + np.random.normal(0, 12, 365) # cooling scales with ambient
overhead_kw = 55 + np.random.normal(0, 4, 365)
total_kw = it_kw + cooling_kw + overhead_kw
pue = total_kw / it_kw # Power Usage Effectiveness (>= 1)
dc = pd.DataFrame({"date": days, "ambient_c": ambient_c.round(1), "pue": pue.round(3)})
print(f"Mean PUE: {dc['pue'].mean():.3f} best day: {dc['pue'].min():.3f} worst day: {dc['pue'].max():.3f}")
# regress PUE on ambient temperature -> the slope IS the sensitivity (PUE per degree C)
reg = LinearRegression().fit(dc[["ambient_c"]].values, dc["pue"].values)
print(f"PUE sensitivity: +{reg.coef_[0]:.4f} per degree C of ambient")
print(f"A 2 C reduction in supply-air/ambient would cut PUE by ~{2 * reg.coef_[0]:.3f}")
worst = dc.nlargest(5, "pue") # the 5 highest-PUE days
print("\n5 worst days:\n", worst.to_string(index=False))
fig, ax = plt.subplots(figsize=(7, 5))
ax.scatter(dc["ambient_c"], dc["pue"], alpha=0.4, color="slateblue")
xs = np.linspace(dc["ambient_c"].min(), dc["ambient_c"].max(), 50)
ax.plot(xs, reg.predict(xs.reshape(-1, 1)), color="red") # reshape(-1, 1): 1-D -> column for predict()
ax.set_xlabel("Ambient temperature (C)"); ax.set_ylabel("PUE")
ax.set_title("PUE vs Ambient Temperature")
plt.tight_layout(); plt.show()
Key Takeaways
- PUE near 1.0 is ideal; the cooling term is the biggest lever, and it scales with ambient temperature - a strong argument for economised cooling or a higher chilled- water setpoint where the IT equipment tolerates it.
- A one-variable regression turns "it feels worse in summer" into a defensible number (PUE per degree C) that justifies a capital request.
- Ranking the worst days points maintenance at specific dates to correlate with chiller faults or filter conditions.
60 / 63 sections · Course home · Join the coaching cohort