From the blog:
And then it hit me. Duh! 32 hardware threads over 4 CPUs (and that's just the minimum config [Editor's note: the Sun T2000 with four CPUs is actually 16 hardware threads, not 32.]). And I was only exercising one of them! My performance test only runs in one thread. You see, the T2000 is designed for throughput. Serving lots of web requests all at the same time. That sort of thing.It's an instructive and obvious explanation of what horizontal scalability is: put together slower, less expensive pieces and scale out, providing lots of CPUs to do the work, instead of spending more on a single CPU that can get bogged down.
So I run a really brain-dead test. I opened up a whole load of consoles and started the test on all of them, all at the same time.
Pay Dirt!
Not a wince. Not a whine. Cool as a breeze. Same speed on all consoles! The T2000 just laughed at me. A few samples from mpstat, and I was a happy camper again. You see, each thread may be a bit on the slow side, but you do have 32 of 'em. So if each one is five times slower, you need five threads to do the same work. But: five into 32 total threads gives you six or so. Which means:
Six Times Faster! Baby!
So what you get with the T2000 is a big old scalability lever, and a fairly small performance lever. Same old story really. There's always a trade-off.
[Editor's Note, part II: this does not represent an endorsement of the Sun T2000 by TheServerSide in any way. It's being highlighted because of the usefulness of the example in illustrating scalability.]