I thought I’d share a little moment I had recently. We rolled out a new version of Feedjit a few days ago. Nothing changed on the user interface – so no new user features. It was mostly performance enhancements on the back-end servers.
The new code was the results of many weeks of research and testing and several weeks of implementation. When we launched this weekend I was cautiously optimistic when I saw the load drop on the servers. And now that it’s a few days later I’m staring at our monitoring graphs with a huge smile on my face.
The reason this is a big win for us is because if we double performance then the number of servers we have to buy halves. And for a small company supporting a huge number of users that’s a very good thing.
Here’s the data from one of our busiest servers. The server has a quad core CPU in it so a load average of 4 is 100% busy. As you can see we were pushing things a little on this particular box. It’s fairly obvious where we rolled out the new code…
Most of the performance gain is from faster disk access code which means that the CPU spends almost no time waiting for the disk to do something. As you can see below the IO wait time has dropped to virtually zero. Disk is the slowest component in a server and is usually the bottleneck for any applications that store and retrieve data, so this is a really big win for us.
I wish I could go into more detail about our application and some specific numbers. In a few weeks I’ll hopefully be able to share more.