No more mysteries: Apple's G5 versus x86, Mac OS X versus Linuxby Johan De Gelas on June 3, 2005 7:48 AM EST
- Posted in
Mac OS X versus LinuxLmbench 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."
|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).
|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|
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.
Post Your CommentPlease log in or sign up to comment.
View All Comments
wessonality - Friday, June 3, 2005 - link
ailleur2 - Friday, June 3, 2005 - linkOh and the graph on page 5 doesnt display correctly in firefox.
ailleur2 - Friday, June 3, 2005 - linkWell that was interesting.
Im a big apple fan myself but even i never thought od putting osx server in a server room.
I think the g5 did quite well and had IBM delivered its promise of a 3ghz g5 (and that was supposed to be a year ago) the g5 would have won a couple of tests by a good margin.
If apple/IBM want altivec optimisations, i think theyll have to do it themselves since the interest level is pretty low.
One question though, why wasnt linux installed of the g5 if this was a cpu test? I dont know if it makes a damn of a difference but it whould have put them on equal bases.
Methodical - Friday, June 3, 2005 - linkI like anands articles way better.
Your drawing too many conclusions off of data you basically call untrustworthy, but I agree your basic conclusion. The OS still needs more work.
I really think leaving out After Effects was a bad idea. Its a perfect benchmark. Plugins that do the exact same calculations on the exact same workfiles. Its also one of the biggest things these macs are used for, but I understand your article to be a bit more server-oriented.
Bahlo - Monday, December 13, 2021 - linkActually, for better or worse the GCC Apple includes is being used for most Mac OS X software. OS X itself was compiled with it. https://setbitv.com/
Bahlo - Thursday, May 5, 2022 - linkjhagman, the number in the apache test table means the request per second that the server handles.