Mac OS X versus Linux

Lmbench 2.04 provides a suite of micro benchmarks that measure the bottlenecks at the Unix operating system and CPU level. This makes it very suitable for testing the theory that Mac OS X might be the culprit for the terrible server performance of the Apple platform.

Signals allow processes (and thus threads) to interrupt other processes. In a database system such as MySQL 4.x where so many processes/threads (60 in our MySQL screenshot) and many accesses to the kernel must be managed, signal handling is a critical performance factor.

Larry McVoy (SGI) and Carl Staelin (HP):
" Lmbench measure both signal installation and signal dispatching in two separate loops, within the context of one process. It measures signal handling by installing a signal handler and then repeatedly sending itself the signal."
Host OS Mhz null null
call
open
I/O
stat slct
clos
sig
TCP
sig
inst
Xeon 3.06 GHz Linux 2.4 3056 0.42 0.63 4.47 5.58 18.2 0.68 2.33
G5 2.7 GHz Darwin 8.1 2700 1.13 1.91 4.64 8.60 21.9 1.67 6.20
Xeon 3.6 GHz Linux 2.6 3585 0.19 0.25 2.30 2.88 9.00 0.28 2.70
Opteron 850 Linux 2.6 2404 0.08 0.17 2.11 2.69 12.4 0.17 1.14

All numbers are expressed in microseconds, lower is thus better. First of all, you can see that kernel 2.6 is in most cases a lot more efficient. Secondly, although this is not the most accurate benchmark, the message is clear: the foundation of Mac OS X server, Darwin handles the signals the slowest. In some cases, Darwin is even several times slower.

As we increase the level of concurrency in our database test, many threads must be created. The Unix process/thread creation is called "forking" as a copy of the calling process is made.

lmbench "fork" measures simple process creation by creating a process and immediately exiting the child process. The parent process waits for the child process to exit. The benchmark is intended to measure the overhead for creating a new thread of control, so it includes the fork and the exit time.

lmbench "exec" measures the time to create a completely new process, while " sh" measures to start a new process and run a little program via /bin/ sh (complicated new process creation).

Host OS Mhz fork
hndl
exec
proc
Sh
proc
Xeon 3.06 GHz Linux 3056 163 544 3021
G5 2.7 GHz Darwin 2700 659 2308 4960
Xeon 3.6 GHz Linux 3585 158 467 2688
Opteron 850 Linux 2404 125 471 2393

Mac OS X is incredibly slow, between 2 and 5(!) times slower, in creating new threads, as it doesn't use kernel threads, and has to go through extra layers (wrappers). No need to continue our search: the G5 might not be the fastest integer CPU on earth - its database performance is completely crippled by an asthmatic operating system that needs up to 5 times more time to handle and create threads.

Mac OS X: beautiful but… Workstation, yes; Server, no.
Comments Locked

116 Comments

View All Comments

  • michael2k - Friday, June 3, 2005 - link

    Well, it shouts to stay away from the XServe unless you happen to have vectorizable code that you have the resources to properly vectorize!
  • erwos - Friday, June 3, 2005 - link

    Excellent comparison of the platforms, although I actually wish they would have spent more time analyzing the graphs.

    Like the others, I would have liked to see a G5 / Linux benchmark (now that FC4 has a PPC version, you could run a fairly reasonable one), but I do admit it's not a very popular option compared to x86. My curiosity is whether MacOS X is the problem, or whether it's some sort of issue with the CPU itself. Seems unlikely the G5 would have such a fundamental flaw, but it does shout to stay the hell away from the Xserve until these issues are resolved.

    -Erwos
  • Thresher - Friday, June 3, 2005 - link

    As the owner of intel, AMD, and Mac based computers, I have to say this is one of the best and most thorough comparisons I've seen.

    You did an excellent job of isolating CPU and OS performance.

    That being said, if performance were the only indicator, there is no doubt in my mind that AMD would be ruling the roost. However, personal preferences come into play to a great deal. Businesses like the reputation behind intel. I prefer the usability of Mac OS X. People have strong feelings about Microsoft that may color their decisions.

    When it comes down to it, performance is important, but not the only reason people buy what they buy. I would say more often than not, the decision is made with only a modicum of logic.
  • Cruise51 - Friday, June 3, 2005 - link

    I'd be interested in seeing how it performs on yellowdog aswell.
  • IntelUser2000 - Friday, June 3, 2005 - link

    People, in case some of you misunderstand, the 10.8GB/sec Full Duplex bus means that its two 32-bit 1350MHz bus, rather than one 64-bit bus in the PCs. Its not, 10.8GB/sec x 2 =21.6GB/sec bus, its 10.8GB/sec bus(or more correctly stated 5.4GB/sec x 2). Plus, it says in Apple site that it has TWO(yes two!!!) of the 10.8GB/sec buses, per CPU.

    Summary: Per CPU=10.8GB/sec
    Per Dual Processor System=21.6GB/sec


    Johan, about the AMD TDP number, they never state that its max power, they say its maximum power achievable under most circumstances, its not absolute max power.
  • JohanAnandtech - Friday, June 3, 2005 - link

    Porkster: It is a little geekisch Unix joke. Where is your geekish you man spirit?

    Wessonality: Our next project if we can keep the G5 long enough in the labs.

    Ailleur2: indeed, I agree. The G5 is a potent CPU with a lot of potential. Just give it a bigger L2 and a better memory subsystem. This is an architecture that could last very long by applying a few tweaks, like the P6.

    Methodical: All of the benchmarks are trustworthy, they should be looked upon as a whole to get a good picture, not just pick one. About After affects, I indicate that the G5 does very well here (seen other reports on the web), I just didn't have the software in the lab.

    I also warned that this was not about "should I buy an Apple or not?". It is just "if performance is what counts for me, where should I position the G5/Mac os X combiantion compared to x86/Linux/Windows ?".

  • StuckMojo - Friday, June 3, 2005 - link


    hmph. you say it yourself in the last paragraph...how come you didn't try it?
  • StuckMojo - Friday, June 3, 2005 - link

    yes, it seems you've left out a very good method of testing if OSX is the issue: run a powerPC linux distro with the mysql and apache benchmarks and see what happens!

    i'd be _really_ interested in the results. see if you can update the article with them.
  • porkster - Friday, June 3, 2005 - link

    "Root Me" in Australian slang is the same as "Fxxk Me" in common language. Some people my find a picture in this review offensive.
  • wessonality - Friday, June 3, 2005 - link

    What about installing Yellow Dog Linux on the XServe?

Log in

Don't have an account? Sign up now