Energy management

86 views
Skip to first unread message

Peter Phaal

unread,
Nov 3, 2010, 9:33:20 PM11/3/10
to sFlow
This seems like a good time to revisit the March 2010 discussion of
energy management from the old mailing list:
http://www.sflow.org/discussion/sflow-discussion/0227.html
http://www.sflow.org/discussion/sflow-discussion/0216.html
http://www.sflow.org/discussion/sflow-discussion/0278.html
http://www.sflow.org/discussion/sflow-discussion/0279.html
http://www.sflow.org/discussion/sflow-discussion/0280.html

Some relevant papers referenced in the previous discussion include:
http://networks.cs.ucdavis.edu/~mukherje/289i_sq10/2-mahadevan-infocom09.pdf
http://www.cs.pitt.edu/~kirk/cs3150spring2010/2008_asplos_nopowerstruggles.pdf

The sFlow Host Structures specification was published in July:
http://www.sflow.org/sflow_host.txt

The sFlow Host Structures extension lays down a framework for
exporting and linking together metrics from network and computational
devices:
http://blog.sflow.com/2010/08/sflow-host-structures.html

This framework easily extends to include the metrics needed for energy
management. Depending on the sFlow data sources exporting energy
metrics, the measurements can apply to power over ethernet ports,
switch power supplies, server power supplies, server blades and even
virtual machines.

Since the metrics are exported as part of an overall sFlow monitoring
system, the power metrics are tied to the network, server and
application workloads consuming energy, providing the context needed
decide how efficiently data center resources are operating (e.g.
energy per packet, per http request, per VM etc) and to automate
energy management controls (consolidating virtual machines etc.).

I've attached some structures that reflect the previous discussions as
a starting point. Areas not yet addressed are processor power states
and low power states for network interfaces (Note: sFlow does export
the current ifSpeed as part of the standard set of interfaces
counters).

Comments?

Peter
-----------------------

/* Energy consumption */
/* opaque = counter_data; enterprise = 0; format = 3000 */
struct energy {
unsigned int voltage; /* measured in mV
unknown = 4,294,976,295 */
unsigned int current; /* measured in mA
unknown = 4,294,976,295 */
unsigned int real_power; /* measured in mW
unknown = 4,294,976,295 */
int power_factor; /* power factor
(expressed in 100ths of a
percent)
-10000 to 10000 for AC power
-2,147,483,647 for unknown AC
power factor
2,147,483,647 for DC power */
unsigned int energy; /* energy in millijoules
unknown = 4,294,976,295 */
unsigned int errors; /* count of power exceptions,
including:
over/under voltage
over current
over power
unknown = 4,294,976,295 */
}

/* Temperature */
/* opaque = counter_data; enterprise = 0; format = 3001 */
struct temperature {
int minimum; /* temperature reading from coolest
thermometer
expressed in tenths of a degree Celsius
*/
int maximum; /* temperature reading from hottest
thermometer
expressed in tenths of a degree Celsius
*/
unsigned int errors; /* count of temperature exceptions */
}

/* Humidity */
/* opaque = counter_data; enterprise = 0; format 3002 */
struct humidity {
int relative; /* relative humidity expressed as a
percentage */
}

/* Cooling */
/* opaque = counter_data; enterprise = 0; format=3003 */
struct fans {
unsigned int total; /* total fans */
unsigned int failed; /* failed fans */
unsigned int speed; /* average fan speed expressed in percent
*/
}




Reply all
Reply to author
Forward
0 new messages