With a lot of the data center energy efficiency focus on facility improvements and virtualization, I’ve decided we need to take a step back and look instead at the applications. As Moore’s Law has increased the capabilities of servers, and disk density has doubled (roughly) every year, we’re no longer as constrained as we used to be by physical resources.
I am, at the heart of it all, a computer scientist. In grad school, I spent a lot of time working on optimizing software that runs on embedded systems — little microcontrollers with limited resources. At the core of these systems was power. If you wrote your code inefficiently, not only would it fail to fit on the device, it would also burn through batteries. And as data center operators know, a server without power is a VERY BAD thing.
So why is it then, that we don’t look at how efficiently our applications are written? There’s no apples-to-apples energy comparison, and few people take energy into account when buying a software package. My prediction is that will change. In a few years, when you evaluate whether to buy (or renew) SAP or Oracle, you’ll ask about the energy operating cost of those software packages over the life of the contract.
It is amazing how many of the energy problems facing IT today can be solved by the applications themselves. Whether you’re running out of power, overloading a circuit, or looking to reducing your power bill, the applications are the key. Virtualization is a lazy hack (there, I said it!) that shields bad programmers from having to actually use resources efficiently.
I’ve been encouraged by Facebook’s HipHop project that compiles PHP code to C++. Now, of course there’s some limitations to HipHop, but it is certainly one step in the right direction — getting the benefit of rapid development without taking a huge energy efficiency and computing performance hit. Facebook also uses things like the Zend Engine, which combined with HipHop, is rumored to give a 50% speedup.
It is unclear if Facebook is using this improvement to mitigate risk during periods of peak activity, or whether they actually plan to consolidate and save money (my guess is the former, not the later, as Facebook probably isn’t losing sleep over their $1m per month electricity bill when their 2010 revenues are rumored to be close to $1 BILLION). I haven’t seen any definitive stats from Facebook on the topic.
There’s a bit of irony around this whole HipHop project, because 3 months earlier Facebook was called to the mat about how much more efficiently their operations would be if they used C++. Admittedly, Haiping Zhao at Facebook says he started this project more than 18 months ago (at least that’s what I inferred from his post), so maybe now was just the right time to package it up and prove that they’re already using C++ (and really, C++ is irrelevant, the point is they’re using native machine code). When they were called out in December, the argument was they could save 75% (not far off the 50% mark that is rumored) and power down 22,500 servers.
Consider that improvement in your data center! Think about the SAP, Oracle, and PeopleSoft clusters you have that you cannot virtualize. <sarcasm>Thanks Oracle, for not playing nice with VMWare.</sarcasm> Imagine if 75% of the resources you need for those large applications magically went away because, get this, the vendor released a software update that was more efficient!
Now they wont, since they license by core, so it is actually in their interest to be LESS efficient! Oye vey! It really is a brave new world we’re living in — I’m looking forward to seeing which startup will challenge the incumbents with a better performance, more energy efficient, and lower licensing and operating cost solution.