PowerNapImprovements

Summary

Release Note

Rationale

User stories

As a user that wants to manage power effectively, I want to monitor more stuff than just the process table. As an admin, I want to be able to program when servers poweroff/wakeup.

Assumptions

Design

Focus on improving PowerNap.

Implementation

See the Work Items list in the associated blueprint.

Test/Demo Plan

Unresolved issues

BoF agenda and discussion

UDS Natty discussion

1. As per discussed with Dustin, a method to execute various actions to bring servers to the lowest power states without having to suspend/hibernate/power off is required. This involves using various hacks and tricks to fulfill the objectives. Examples of these hacks and tricks are:
- Turn off 15 out of 16 cores.
- Spin down hard drives.
- Turn off hardware that's not required to be running.
- Reduce CPU frequency to the lowest possible.
- etc

2. Also, as per discussed with Dustin, instead of monitoring the process table, it might also be a good idea to monitor various services, such as load in webserver, connections in databases, etc, and according to that, bring the server to the lowest power state possible.

3. Provide any other waking up methods for PowerWake, such as IPMI.

4. Given that PowerNAP is integrated in the cloud, it would be nice to improve PowerNAP in such a way that will also be used in other kind of clustered environments, or in a set of servers were traffic is monitored. For example, in a loadbalanced webserver cluster, sometimes there;s not enough traffic that will involve all the webservers to be up. PowerNAP can be extended in such a way that it will do the same that is done with UEC when servers are idled, or when the load is not too much that will involve having lots of servers running.

5. Obtain feedback from community is also desired to be able to extend PowerNAP uses.

== Session Notes ==

 - Open all input devices and poll/monitor activity
 - Look at udev for all input devices, look for id-input-key and mouse
 - see pm-utils fpm-powersave (Does something similar)
 - look at using poll(2,3) to monitor input
 - investigate getting kernel events on new processes (rather than polling) -- perhaps upstart?
 - check upstart for notification of new processes
 - actions should be added to pm-utils package (such as powering down cores)

== Outcome ==
 * ACTION: Talk to Scott about Upstart, how PowerNap could tap into Upstart to monitor processes in an event driven manner rather than polling /proc
 * ACTION: Use pm-powersave for PowerNap new power save mode
 * ACTION: Contribute any new actions to pm-utils (rather keeping in PowerNap)
 * ACTION: Use event based monitoring for input polling (limited to keyboard and mouse)
 * ACTION: Get network monitor matching the MAC in the WoL


CategorySpec

PowerNapImprovements (last edited 2010-11-05 00:57:46 by c-71-229-105-206)