As many of you know I spend a good amount of my life hacking away at the linux kernel and our hosting environment trying to make things smoother. Our new cpu controller, memory controller, and process controller (Officially coming out in about 10 days – YEAH!) make a HUGE positive impact on the stability of our systems.
One of the things you probably didn’t know was that our cpu controller had a big impact on the amount of power that we use. I never even considered that our CPU controller would lower our server power usage, but it did. In fact it lowered our total power usage by about 7% (Our WHOLE datacenter!). Not too bad for a software product that was never intended to lower power costs at all. Now that I see the benefits we are actively trying to make it reduce even more power. I think it is reasonable to expect that I can get it to about 9% savings.
Now what does this have to do with Apple’s Iphone? Everything in my opinion. Apple’s iphone has two huge problems that drive me crazy. First, I don’t think the battery life is very good and second there is VERY little cpu and memory protection for apps on the iphone (ESPECIALLY IF YOU USE A JAILBROKEN IPHONE!!) I use my phone a LOT as a phone, a TV (Slingbox), and for all kinds of other internet goodness.
So like any self respecting geek I wondered what would happen if I could apply the principles of our cpu and memory controller to the Iphone environment. So I started testing the Iphone (That means trying to break it and make it die a painful software death) and I found something interesting. Just like our servers, single apps on the iphone burst to huge amounts of cpu usage (Near or at 100% usage) and then fall almost immediately back to 1-3% usage.
This didn’t surprise me at all as the iphone is built on the foundations of BSD Unix, and this is exactly how a stock BSD, Windows, OSX, Linux installation behaves. Now this type of 3% cpu usage spiking to 100% and then back to 3% over and over and over is BAD for battery life. You know what else it is bad for? You guessed it (Or maybe not ). Its REALLY bad for stability on the iphone.
What does this mean for you? Well, if you have a jail broken iphone it means there is a really good chance that many of the apps you install compete directly for resources with the phone app and phone capabilities. Uh oh – Dropped calls. Guess who gets blamed for problems when that happens? AT&T. Its pretty hard for the average consumer to determine if AT&T is to blame or spiking software on their iphone. Don’t get me wrong. There is PLENTY of blame for AT&T. They are one of my least favorite companies on the planet (right behind Delta, and Comcast). There are also significant challenges to segregation of memory and cpu resources for non jail broken phones as well so don’t think you non-jail breakers are out of the woods either.
Its amazing to me that an outfit that I respect as much as Apple hasn’t gotten around to solving this problem. In their defense it IS a very very difficult problem to solve. In fact, the primary reason for writing that whole notification system instead of simply allowing background apps to run was to save battery life and to segregate resources.
All of this is tempting me greatly to port our cpu controller and memory controller over to the iphone. It would make it almost impossible for rogue applications to A) Eat up your battery using inordinate amounts of cpu resources, B) Crash your iphone by eating too much memory or CPU, C) Cause your phone to drop calls because of other 3rd party apps.
What do you think? Would you pay $3 for this software for your iphone (Gotta keep the lights on ) or am I making something out of nothing and you don’t see any real problem with your iphone?
Matt Heaton / President Bluehost.com