Computer Speed vs Power

And a discussion of Intel PeeCee Servers vs Sun Servers


  An interesting discussion was started by someone on Slastdot (news for nerds) about how much better Intel computers were vs Sun computers.  A self proclaimed "Uber Geek" wrote an article that said that a Pentium 700Mhz running Linux was faster than a quad CPU Sun E220 Solaris machine running a MySQL database.  I'm not normally a picky person about minor details, however, this person is supposed to be a "Uber Geek" so I will nit pick at the details.  First, their is no such thing as a Sun "E220".  There is, however, a Sun E220R, but it can only have 2 CPUs (not a quad, that would be a E420R).  And, since this machine was apparently provided by a web hosting company, I think that it is safe to assume that the "Uber Geek" doesn't know anything about Sun computers or Solaris.  By the way, there is a Sun E450, but I don't think that this was what the "Uber Geek" was talking about.
  It should also be pointed out that MySQL is not an Enterprise level database (it can't do row level locking, is not multi-threaded (can't use multiple CPUs), etc).

  Anyways, from this discussion came some very well put points.  I think that I will use them next time when I am talking to a non-technical CTO/CIO (has does this happen??).

Sun hardware is stable. its not really fast.

         This gets to the fundamental thing people don't understand about measuring the abilities of computers. There are two ways  to measure the capability of a systems: speed, and power. They are related but not closely. See, a 9-year-old SparcCenter 2000E (introduced in 1992) with 20 quite slow CPUs (60Mhz SuperSparcs) and a few gigs of memory is more powerful than the latest and greatest dual 1.5 GHz Pentium 4 peecee and will almost certainly remain more powerful than even the most expensive and fancy  peecee for many years to come.

         More powerful. Not necessarily faster. Power measures how much work it is possible for the machine to do in a given amount of time. Power is a general measure that assumes you are running a wide variety of different kinds of jobs, or perhaps a large number of similar ones. When measuring power, you must assume that the load of a system should be at least 0.9 per CPU all the time, and that large amounts of data may need to be moved around. Moving data and sustaining high loads for long periods of time without degradation of responsiveness is an indication of power. That SC2000E can serve many millions of pages a day without breaking a sweat. That's power.

         Speed, on the other hand, is a concrete measure of the time it takes to run a certain single linear task, such as a kernel compilation or serving a single page to a single client. This measure rarely places any premium on scalability or the ability to move data. Instead, this measure is typically dependent on the speed of the single fastest CPU in the system. Peecees have great speed - the CPUs are clocked very high and execute very complex instructions. Sun systems do not generally  fare very well in this area, especially compared to cost.

         The design goals of a Sun are evident from the specifications of the systems - buses are wide, not super fast. Latencies can be quite high. CPUs are clocked fairly low and execute simple instructions. The system is designed to allow tremendous throughput - power. Load up on memory, disk controllers and storage, and CPUs, and the huge buses will deliver data well as the load rises. For a web server, for example, serving a single page to a single client is fairly slow compared to a machine with greater speed - remember, a single linear task. But serving one more page beyond the 5000 already being served is where the Sun will really shine. The peecee's memory bus will be saturated quickly; it is clocked fast - much faster than the memory itself in most cases - but is fairly narrow, and the system buses contain bottlenecks. The system was designed for speed, not power. The Sun, meanwhile, can serve the 5001st page nearly as quickly as the 1st. That is the difference between speed and power. The inability or unwillingness to understand the difference between the two is the *only* reason there are peecees in server rooms.

         Every system has certain design goals. Peecees and peecee-like systems are designed for single linear tasks - the kind you find desktop computers generally do. Because people - especially traditional nontechnical peecee users - generally  do not multitask very well, there is no sense designing their architecture for power. Instead, designing for speed makes more sense. In the server room, however, the exact opposite is true. Unless you're expecting very light use of services, the speed of a system is meaningless; power should be the main design criterion. Using an architecture designed for a completely different problem space just because it happens to look cheap (I won't even start on TCO issues with peecee servers...) is entirely inappropriate. I would fire a sysadmin who recommended peecees for a server environment.