Round Robin Scheduling Not Power-Efficient
Via_Patrino writes "While having to distribute load between several servers, round robin, or any other technique that balances load equally, is the most common approach because of its simplicity. But a recent study shows that trying to accumulate load on some servers can improve energy efficiency because the other servers will be mostly unused during off-peak periods and then able to make better use of power saving methods. Specially, where load involves lots of concurrent power-consuming TCP connections, which was the case in the study, a new load-balancing algorithm resulted in an overall 30% power savings. Here's the paper (PDF)."
BTW Dynamic workflow based provisioning of VMs can (or will eventually) allow you to do this without sacrificing speed.
I think that's the point of the study and solution. Round robin doesn't account for under-utilization of resources so it still balances between multiple servers when not needed. What their new algorithm does is allow the servers that are not needed to use their power saving features and maximize utilization of only the needed resources(servers).
Agreed. How hard is it to understand that if you use 50% load on 10 servers, you will probably be using more energy than a 100% load on 5 servers. It's common sense when you realize that a 50% load != 50% power consumption.
I am starting to think I didn't miss much by not going to a big name computer science school.
No comprende? Let me type that a little slower for you...
That's not what this is. This isn't consolidating and reducing the number of servers, period like VMWare. This is for setups where there's like 100 machines to handle peak load, but the rest of the day they'd only need 20. So, they'll turn off maybe 75 machines (keeping 5 spares in case there's a little spike) and fire them up during peak time only. VMWare is great for this kind of thing since you can just shuttle VMs around, but this wouldn't be bad to do with a conventional setup either -- you'd remove machines from the round-robin scheduler, wait for connections to that box to finish, and shut it down. When load gets high, send the machines a network power-on message and when it's booted add it to the scheduler.
This is one instance where those servers that take like 10 minutes to boot are a disadvantage... (Netservers and the like, which do an extensive RAM test and scrub, carefully spin up HDs one at a time, probe a bunch of SCSI busses whether they have anything on them or not, etc. etc...)
On a smaller scale, the Linux kernel is beginning to support this -- one of the scheduler options now, instead of spreading out jobs to all cores, will schedule to ONE core (allowing others to run in deepest power-saving mode) until that cores ~100% busy, then power the next core up, and so on.
"Round Robin Scheduling Not Power-Efficient when using Windows Live Messenger"
RTFA, in the abstract, "In this paper, we characterize unique properties, performance, and power models of connection servers, based on a real data trace collected from the deployed Windows Live Messenger."
The research itself appears pretty solid. I'd be interested if they publish a followup paper where the model was based off of a variety of applications which utilize round-robin, not just one.
pen can perform some configuration changes on the fly using an optional control service; you can set server weightings at least. It's also event driven rather than the thread-per-connection model I believe pound uses, so it should scale better.
Enwave Energy Corporation in Toronto, Ontario is already doing this. They have a 59K ton integrated district cooling plant using deep lake water as an energy sink. Chicago is thinking of doing something similar with the huge volume of water they already draw from the lake for other purposes. The Toronto project probably kept another coal plant from coming online because it's got a cooling capacity of 207MW which would require about 400MW of electricity between transmission losses and cooling system inefficiencies.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.