Wednesday, June 06, 2007

Keeping CPUs busy

I guess I either don't understand the finer points of computer performance or don't understand why some people don't understand what I consider to be simple knowledge about computer performance.

"The CPUs on the server are running at high utilization, 60 to 80 percent"

Okay. So?

Are you paging (swapping) heavily? No. Is the disk I/O rate normal, low or very heavy? It's about normal. Is there a looping or run-away process or service? No.

Then what is the problem? (this isn't happening with my current employer, by the way)

It seems to me that if you aren't paging then you are not using all of your server's memory, else you would be swapping and that could be bad. If there are no looping processes then the software and operating system are functioning normally. If the disk (or network) I/O are normal then the software is reading and writing data like it should be. Again, what is the problem because it sounds to me like the CPUs are doing what they are supposed to be doing, utilizing themselves and if your I/O rates aren't through the roof then you are probably getting a portion of the CPU utilization through application buffer and cache hits (a really good thing, by the way). You don't spend a dump-truck full of money on a bunch of processors just to have them sit there at 10 percent utilization most of the time; you want them doing work! Throw more memory at them to boost cache and buffer hit rates or if that doesn't seem to help (which sometimes it doesn't; there is a sweet spot when doing read caching just because you can only cover so much especially when data is scattered on disk) maybe consider moving temporary spaces to memory (or covering them heavily).

The point is: you want your server processors to be busy if there is work to be done. Maybe I'm wrong or just don't understand things correctly but it seems like putting a motorcycle engine on a scooter; if you're never going to have the thing above 2 miles per hour then why all the horsepower? I see the same thing on the workstation. If all you are going to be doing is surfing the Internet, typing memos and using central application software do you really need a 2.8Ghz P4 sitting there doing nothing? I got in an argument with a pro-Firefox guy recently. He said Opera can use over 160 MB of memory. So? Is any other application using it? No. Then what harm? I'd rather have Opera intelligently caching as much as possible while there is no effect on other applications. "Well it shouldn't use that much!" Sigh.

IBM has a technology called Capacity on Demand (CoD) "so companies don't have to pay for computing resources until they use them." They have on/off and reserve processing that can be activated in increments of time (like a day) for end-of-period processing or for sporadic work loads. The company I work for has already had some fun with it. There are other aspects of CoD and it is a decent idea but I have to believe that IBM isn't in it just to keep customers happy; they are making their money.

No comments: