PPC Linux vs. Mac OS X Server: Linux Edges Out
Spencerian writes "Mac OS X is a very promising new BSD variant, but how does it rate as a server? Byte.com writer Moshe Bar has made an extensively balanced performance comparison of Mac OS X Server 10.1.5 versus SuSE Linux PPC with the 2.4.19 kernel. Both operating systems ran on the same hardware: an Xserve 1U rack mount server from Apple. While /.ers may guess (correctly) at his results, Mac OS X Server 10.1.5 wasn't as far behind the curve as you might think. Performance might've been better if Moshe had Mac OS X Server 10.2, with its faster GUI and other enhancements, but still, it appears that Mac OS X Server 10.1 was doing pretty good for a 1-year old."
I think they are comparable in speed.
Personally, I would go for FreeBSD and Solaris, but anyway.
to compare, say FreeBSD vs. OS X?
And "was doing pretty good" is written pretty well for a ten-year-old.
'You have requested data that the server has decided not to provide to you. Your request was understood and denied.'
Wow, a self-aware server that _understands_ the Slashdot effect. I wonder if it is part of their mythology.
-- Ed Avis ed@membled.com
This goes to show that Mac OS X Server does compare very well to other Unices (okay, Unix-LIKE systems) in terms of performance. With its preeeety GUI anemeties, OS X Server could be just the stepping stone we need to get more admins to switch over from M$.
:P
Now let's see OS X Server kill, er, compared to Windows 2000/.NET... Run, Bill, run!
"I am root. Bow before me." To this I say, "You are root, and you bear the sins of the world upon your shoulders."
Why would you want to run MacOS X as a server? Why not simply run the Darwin core on it's own. As I understand all MacOS X does is add a GUI to this core, so what does that add in a server enviroment? It's not even as if you could use the GUI remotely, like with X.
Why do you need a GUI on the server anyways? All it does is waste cycles.
Slashdot's first reaction to VMware
Linux does plain crazy things for gaining performance. For example not really allocating memory when you actually do the memory allocation call but later when it's needed. But at that time it might be out of memory and the program cores.
This is plain nuts in a production-server where you need deterministic behaiviour.
Are there _any_ advantages to buying an Xserve, and loading up Linux PPC on it over just using a (cheaper) Intel-based solution. I honestly dont see what the point would be in buying the apple solution (and paying for OSX) if youre not going to use apple's software.
It would be simple to check the referring URL and if it matches slashdot.org to send back a 403.
Has Byte been bytten in the past by the slashdot effect? (no typo - just a bad pun)
I say we take off and nuke the entire site from orbit. It's the only way to be sure.
What was the swap confirguration in linux during the test? I believe it was a SWAP partition rather than a SWAP file.
Whereas on OS X it should have been default(ed) to a SWAP file.
The difference in performance is quite considerable because for a SWAP partition the OS doesn't have to go through a lot of IO file system code.
Someone please mod this jackass down for a goatse.cx type link
Toodles D. Clown
You have requested data that the server has decided not to provide to you. Your request was understood and denied.
It would be nice if the first link loaded.
Anyhow, just judging from the headline and writeup, I don't think it's a "lose" for OS X. These are two solid, admirable servers.
I'd love to pit these against a "comparable" MS product.
"Folks just call him Buckethead." -- Les Claypool
in the Science & Technologies section
Just cut-n-paste the URL into a new browser window. They're denying any referer that matches slashdot.org (see my previous comment)
I say we take off and nuke the entire site from orbit. It's the only way to be sure.
Put OpenBSD or NetBSD on that machine and compare. linux vs foo comparisons are boring and more of the same. (or FreeBSD if it runs on PPC these days)
Overall they are both better than running windows on any machine. I dont know much about linux on the Mac, but if it can be duel booted with mac OS X (im sure it can) then that would be the ultimate config. Then you got the best of both worlds. and no m$ -geek
To me, the performance of Linux over OS-X is marginal and not really worth considering. The choice really is over what the computer administrator is more comfortable with - hell, put NetBSD if it will make the administrator more productive. The server only costs $3000 bucks so screwing around just to get a 10% improvemnt is not worth it - but if Linux makes the administrator 10% more productive then do it.
Stupid Example:
I haven't benchmarked FreeBSD vs Linux and I really don't care - all my file servers are FreeBSD because I'm expensive and learning Linux is not cost effective (for me). YMMV.
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
Where OS X seems behind Linux in terms of performance is memory footprint and graphics speed. In Moshe's server benchmarks, OS X used a lot more memory. Also, take a look at the memory footprint of the OS X display server and the OS X GUI applications--they are usually several times as large as comparable X11 functionality. And the raw graphics performance of the OS X display server is behind X11 in my experience (but do your own measurements if you don't believe me).
Posix bases are better in general for server applications than windows. Windows is designed for users. Posix is geared towards computers. Windows is about making things easy. Posix is about making things work well. Each of these has concessions towards the other's area of expertise, but it's all a matter of which is better for the job, and if the concessions are better than the other's native functions. Damn...think i confused myself with that
In SOVIET RUSSIA... erm...NSA AMERICA, the Internet logs onto YOU!
heh. I didn't click the link earlier...
read your comment.
clicked.
oops.
command-w
I say we take off and nuke the entire site from orbit. It's the only way to be sure.
a) Get the latest Jaguar
b) Go to Apple and SuSE and get advice on tuning
c) If it is available under SuSE, use gcc 3.1 for compiling
Moshe admitted that there was probably alot of optimizations that he missed. I'd like to see them both tuned for speed and then compare them.
(Sorry for some stray formatting of the tables; hopefully you can guess where the columns were)
e solve
Comparing Apples and Penguins
By Moshe Bar
Last month, I described my romance with Mac OS X as a near-perfect environment for the desktop, and/or laptop. The harmonious combination of Apple GUI know-how with Unix (FreeBSD) for stability, security and efficiency are too sweet for geeks from all walks of life. I continue to use Apple laptops (I now have both the iBook and the Apple G4) for my writing, teaching and speaking activity. We received tons of reader's email here at Byte.com in response to that column. Too many to be named here rightly corrected me: Contrary to my first impression, there is indeed a package manager for OS X. It's called Fink and you can find it on www.sf.net/projects/fink. It also turned out that the Jaguar version I had received was a pre-release CD which contained only the 2.95 gcc compiler, though many reported that the 3.1 version of the same compiler was installed by default, as well. Apple quickly reacted by sending me the released version of Jaguar and, in fact, both compilers are present.
As good as Mac OS X is for desktops and laptops, one wonders if the FreeBSD inside is not too restricted by the Apple jacket around it to also make for an efficient, secure and fast server OS. Apple is now busy convincing the world that Apples make also for excellent server appliances in the handy U1 format, thanks to OS X. That new product is called Apple Xserve. Many potential buyers are, however, asking themselves if OS X--given its recent introduction--is ready today to handle their critical apps.
That's why I decided to take one of these sleek Xserve boxes and test run it both under OS X and under Linux. I was loaned an Xserve for a week by a geek friend of mine over at a very large ISP. That machine came with Dual 1Ghz PowerPC G4 and 1 GB of Ram. I installed OS X from scratch on it using the CDs that come along with the product. The resulting OS after the install has version 10.1.5. The included AGP 4X card with 64 MB of dedicated graphics RAM is a screamer. The dual CPUs in the system push out an impressive 15Gflops floating point power. Alas, apart from High Performance Clustering applications, relatively few people are going to take full advantage of it. The integer and memory bandwidth performance, however, is at least up to par with the latest IA32-based U1 servers out there. Obviously, I was not going to make use of the graphics card. I didn't bother trying to configure it under Linux because, after all, I tested this machine for server performance.
I used the SuSE PowerPC Linux distribution for the second part of the test under Linux. Linux installed effortlessly and was happy to use all of the hardware found in the Xserve.
The Test Environment
Next to the obvious Apple Xserve, I set up 4 clients on the same 100mbit network, switched by the excellent Linksys 24port 1000/100/10 switch that powers most of my network in my home lab (for the LinkSys EF24G2M-10/100 EtherFast Dual Gigabit Switch 2-port 1000BaseTX see www.linksys.com).
The 4 clients are all IBM Netfinity 5100 or 3000 machines running Linux 2.4.19 with my openMosix clustering extensions to automatically load-balance the requests thrown at the Xserve server. The four machines can easily saturate a fast server on a good switched network.
Next, I set up exactly the same server environment both under Mac OS X and under Linux with the 2.4.19 kernel. I always made sure to use the same version of the server software both under OS X and Linux, each time re-compiling the binaries from source locally with the 2.95 gcc compiler, which is available on both platforms. The compiler itself was also locally re-compiled, taking all reasonable optimizations into consideration.
Since for the life of me I couldn't figure out how to shut down the GUI environment of OS X, I configured a simple VGA X server for Linux and started KDE, just to have a fair basis for comparison.
I ran tests against networking (Sendmail and MySQL tests), process build-up and tear-down (the cgi tests) and against the VMs (all tests combined, under memory shortage).
For the static html benchmark, I wrote a simple html page just displaying "hello, world." For the dynamic pages, I wrote the CGI handler in Perl. The Perl used was 5.8.0 for both environments. Here is the sample cgi handler:
package Apache::Bench;
sub handler {
my($r) = shift;
$r->content_type('text/html');
$r->send_http_header();
$r->print('Hello, world ');
200;
}
For the MySQL part, I set up a MySQL database with 30 million addresses generated by a simple filler Perl script before the benchmark. Then, I repeatedly let the clients run a series of transactions against it. I downloaded MySQL 3.23.52, skipping the harder-to-compile 4.0.x series, recompiled it locally under both OSes, then configured it with the following parameters:
[mysqld]
big-tables
skip-locking
skip-name-r
skip-networking
set-variable = max_allowed_packet=1M
set-variable = thread_stack=128K
set-variable = back_log=256
set-variable = key_buffer=30M
set-variable = table_cache=64
set-variable = sort_buffer=5M
set-variable = record_buffer=5M
set-variable = max_connections=4000
set-variable = join_buffer=5M
skip-thread-priority
For the mail handler, finally, all involved clients in the LAN were sending MIME-encoded attachments (I chose a small size of 8.5 KB to stress the MTA more than the network) to a 4.9 KB message. Sendmail was the standard 8.12.6 version available from the sendmail.org site, rebuilt for each OS. No special tuning was done and no anti-spamming measures were enabled. There was just one mail queue under both OS X and Linux, and the Sendmail-typical load-adaptive throttles were disabled to make use of the full bandwidth and system power. There is an excellent howto on enabling the native Sendmail 8.12.2 of OS X 10.1.5 here. I did however, as mentioned previously, compile my own Sendmail 8.12.6.
Needless to say, setting up the server environment was considerably easier and faster. Linux, with all required sub servers, was ready in about 3 hours of work, whereas a long day passed before I had my OS X ready to go.
For the web server tests, I downloaded Apache 2.0.39 and recompiled locally with the proper libraries. Just to avoid unnecessary lstat() system calls, I turned on FollowSymLinks and turned off SymLinksIfOwnerMatch. The SendBufferSize was increased to the size of the static page I used for this test. To make sure the page size is bigger than a TCP packet and also bigger than a virtual memory page, I made it 4050 bytes. Both OS X and Linux use 4 KB VM page sizes.
I ran the following Perl program on the four clients each getting a different file, while I placed the virtual memory of the server under stress to cause the cache contents to be deleted as much as possible. Here is the Perl stress test program:
#!/usr/bin/perl
$counter = 0;
$seconds = 2;
$html = " ";
$args = ("wget", "http://192.168.1.1/index1.html");
$time1 = time;
$check = $time1+$seconds;
print "strtd at", time, "\n";
while (time != $check) {
$html = system(@args) or die "wget failed hard with $?";
$counter = $counter +1;
}
$time2 = time;
print "ended at", $time2, "\n";
print "for ", $seconds, " seconds. \n\n";
print "got ", $counter, " pages from server \n";
[root@moshe1 temp]#
In the end, I was quite pleased with the set-up. Again, all this is far easier and faster to do under Linux than under Mac OS X, but it can be done on both platforms given enough time.
The Results
Since this is not a scientific benchmark, I am quite sure your results will wary from mine. Also, note that this benchmark was done without prior consultations with either Apple or SuSE, so surely there are tons of tuning parameters for both operating systems that I simply didn't know about. Also, one should consider that the FreeBSD used in OS X is quite an old version (version 3.2, while FreeBSD just released 4.7), and that the Linux kernel has experienced a fantastic growth in performance over the last year, especially in the VM area.
The results should therefore be understood as a general indication of the behavior of a particular OS when checked against the other, and not as a quality rating. All tests were run 10 times and I then averaged the results.
Having said that, let's look the Apache results:
URL OS X 10.1.5 Linux 2.4.19
http://server/index.html 6127.2 reqs/second 7283.7 reqs/second
http://server/cgi-bin/perl.cgi 624.1 reqs/second 703.5 reqs/second
From these results one can assume the VM and network stack of Linux to be superior to OS X. It could also be that the page reclaiming algorithm is simply smarter in Linux than in OS X.
For MySQL, I did much the same thing, with a Perl script running heavy SQL statements against the database. Here are the results:
OS X Execution Times Operation Seconds
alter_table_add 212
alter_table_drop 118
connect 2
count 39
count_on_key 721
create+drop 4
create_index 31
insert 12
order_by 187
order_by_key 65
select_distinct 38
update_with_key 119
Totals 1648
Linux Execution Times
Operation Seconds
alter_table_add 197
alter_table_drop 108
connect 2
count 15
count_on_key 607
create+drop 6
create_index 22
insert 8
order_by 89
order_by_key 91
select_distinct 32
update_with_key 76
Totals 1253
These results really surprised me. It seems OS X has a poor I/O subsystem as compared to the Linux subsystem.
For the Sendmail results it is important to state that Procmail was unused on both systems. In order to let Sendmail wait less for I/Os, I also deleted the fsync() system call, which forces the full writing of each message on the file system. By deleting that system call from the sources, I let Sendmail defer the actual writing of the inode of each message to a later point in time. This is, obviously, against the RFC and should not be done in production-grade MTAs. Once you eliminate the fsync() call, more RAM will nicely scale up the number of emails being handled, which in turn better reflects the performance of I/O caching in the OS.
OS X Linux
Incoming Emails 816 mails/second 941 mails/second
Mail Relaying 581 mails/second 609 mails/second
Here again, Linux seems clearly superior to OS X for all VM-intensive operations.
To go that extra mile, I then ran all these tests combined. Obviously all values were much lower and it is not the issue here to actually measure them. What, however, was much more interesting were values like load level, interrupts handled per seconds and context switches per second. For this final benchmark, I ran the Apache/MySQL/Sendmail tests at the same time, waited about 20 minutes after starting, recorded the results over a 2 hour period, and finally calculated the average:
OS X Linux
Average User-Land Runnable Processes 263 272
Average Idle Percentage 0.3% 1.1%
Average Context Switches (per second) NA 10212
Average Free Pages NA 890
Average Interrupts (per second) NA 9281
Average Blocks Out (per second) NA 2008
Average Load Level 27.1 26.2
Average Swapped Set Size 421 MB 102 MB
Sadly, I couldn't find any way to get decent system information from OS X. Things like interrupts or context switches per seconds are important indicators for a sysadmin. If there is no easy access to them (I am sure the kernel itself maintains these counters) how is the sysadmin supposed to see if the server is under- or over-utilized? This is a real shortcoming and Apple better introduce some way to monitor the system if they are serious about being in the server market.
Conclusions
Well, for a newcomer to the Unix market, I am actually surprised at the very decent results and stability of OS X. I experienced no crashes under both operating systems, which comes as no surprise to Linux users. For Mac users, however, this is by itself already a big improvement over previous operating systems for the Apple. The fact that OS X needs to improve in VM and I/O handling is understandable given its relatively young age. After all, Linux has had more than ten years to get where it is today, and even that is not much by OS standards.
The Xserve's floating point performance is superior to many other solutions out there, and that alone makes it an excellent choice for clustering environments. But if all you are looking for is a server for your standard Internet or Intranet applications, then I see a problem in justifying the high price tag of the Xserve ($4000 for the configuration used in this test) for something that you can do faster, easier and cheaper on one of the many different products in the IA32 space.
Moshe Bar is a systems administrator and OS researcher who started learning UNIX on a PDP-11 with AT&T UNIX Release 6, back in 1981. Moshe has a M.Sc and a Ph.D. in computer science and writes UNIX-related books.
For more of Moshe's columns, visit the Serving With Linux Index Page.
Copyright © 2002 CMP Media LLC, Privacy Policy
Site comments: webmaster@byte.com
Why did Apple choose to go out and start a new kernel project when they could have just based OS X on the Linux kernel instead? They could have gained so much ground and lost so little. It's worked for so many other companies--why not Apple?
"With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea...."
RFC 1925
1) who cares about "faster GUI"
2) who cares about 10.1 anyway? 10.2 is what's out now. OS X is still a "work in progress".
3) Also, is is usually the case with Macs, there are other considerations besides raw performance. like the ease of administration and the sweet xserve hardware.
LOL Beavis and Butthead
I should have been more verbose.
What I mean is, in a CGI script or dynamic page that is serving up the article, it is probably checking the HTTP referrer header and checking if it matches "slashdot.org".
If not, it serves the page. If so, big fat 403.
I say we take off and nuke the entire site from orbit. It's the only way to be sure.
Maybe it means the opposite of "was doing pretty evil". Presumably describing a Windows/IIS server configuration.
Who needs a stinking gui on a machine that I will ssh to?
-5q33z
Ever compare MkLinux and PPCLinux? Then you'll know that the slowdown is almost entirely Mach's fault. It's a piece of crap. The only reason Apple uses it is because it was written by one of their VPs. Anyone with any objectivity would have chosen a different kernel.
Free Hans!
Microsoft's Windows 2000 Server beat a Red Hat Linux* server in bandwidth tests, showing its clear superiority.
* Red Hat Linux v4.2 used in tests.
Shouldn't that be the jewy gooey centre ?
Isn't testing OS X vs Linux on Apple hardware kind of giving OS X an unfair advantage as Apple know the ins and outs of their proprietary hardware so can throw in all kinds of optimizations?
I'd be more interested to see Darwin/x86 go against Linux for web serving, especially if you throw in the Tux kernel module web server (good for performance).
Our fearless leader. God bless him!
FreeBSD PPC support is still wearing diapers, see the current status.
2) Moshe is not smart enough to boot Mac OS X into command line, "Since for the life of me I couldn't figure out how to shut down the GUI environment of OS X" -- Moshe "I can't use Google" Bar. Here's a tip Moshi, when the log on screen pops up, type ">console" in the user line.
3) MacSlash has already dealt with this.
Strange women lying in ponds distributing swords is no basis for a system of government.
Saying MacOS X is derived from FreeBSD is like saying that Windows XP is derived from System V because they both have POSIX compatibility layers. It's stupid and wrong.
....you should check out their comments.
You say
From the /. article...
Mac OS X Server 10.1.5 wasn't as far behind the curve as you might think. Performance might've been better if Moshe had Mac OS X Server 10.2, with its faster GUI...
From the article itself..
The included AGP 4X card with 64 MB of dedicated graphics RAM is a screamer...
Ok, my question is this: It's a server-to-server comparison. What relevance does the speed of the GUI , and the performance of the graphics card, have? IMHO, the GUI should be shut down if at all possible for any server application.
Code or be coded.
Agreed... but let me throw you a curve.
POSIX systems have extensibility, portability, multiple programming languages, a networked windowing system with your choice of WM/DE, TRUE multiuser capability, efficiency and stability.
What does Windows have? Most of the above, specifically minus portability, the networked windows system (Terminal Services doesn't cut the cheese), efficiency (in recent versions) and stability. What Windows doesn't give you is choice. I argue Windows is not any more "designed for the user" than Unix, but rather that in Windows (or at least in each version) everything is only One Microsoft Way, and you cannot do much to change that. Microsoft also has mindshare and a $50+ stock price.
To the topic at hand now. Apple now more or less equals Unix as far as the OS is concerned. Specifically, OS X is POSIX plus everything being pretty, and there being an Apple Way (often, multiple Apple ways such as the choice of APIs) and a BSD Way to do most things.
This is why I argue OS X, now that it is proving itself as a server, can advance ground on the desktop and on the server.
"I am root. Bow before me." To this I say, "You are root, and you bear the sins of the world upon your shoulders."
No no, the Moshe Bar is where I hang out after work.
10.2 is compiled completely in gcc 3.0. I would think even things like Apache would run faster when compiled with gcc 3, rather than the 2.x variant that shipped with 10.1
Still, an impressive showing for OSX. I think Apple's strength over the next several years will continue to be the desktop, but it looks like they might do well in the server market also.
Oh yeah, I also think the Xserve is on of the most desirable pieces of hardware on the planet. They're purrty.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
This story was originally posted on MacSlash, with a thread of opinions on this as well.
Biggest optimizations he missed: turning off Aqua! I kind of have to take this whole test with a grain of salt, you're not really doing justice to a spec test when you have two gui's running taking away performance from what your trying to test: the server.
Since for the life of me I couldn't figure out how to shut down the GUI environment of OS X, I configured a simple VGA X server for Linux and started KDE, just to have a fair basis for comparison.
Come on Moche, do a little research and login as "> console".
"I wish I had a Kryptonite cross, because then you could keep both Dracula AND Superman away." --Jack Handy
These results, should they turn out to be reliable (which I believe that they are), speak volumes about the quality of MAC OS X. It is just slightly less efficient then Linux, yet still retaining a very high "ease of use factor". Not to mention it's amazing progess with the various components of it's GUI (Quartz - which creates two dimensional images, ATS, terrific OpenGL, the ability to save anything as a PDF, Aqua....) and easy to implement Cocoa and Carbon APIs.
The following pdf-file probably needs some clarifications from someone else than me. MacOS X beats RedHat over and over.
d) Try the tests while logged into the Mac in console mode, by typing
at the system login screen.As others have noted, a dormant window manager shouldn't consume any processor time, but if you can disable it on both machines that's a more accurate comparison than trying to get an X11/KDE combination to perform similarly to Aqua. That itself would be a long, complex, and ultimately probably not very interesting comparison to run -- suffice to say that if you can make both window servers fall out of the picture the comparison should be more accurate.
DO NOT LEAVE IT IS NOT REAL
Well, this article proves that OS X runs fairly well on the only architecture it can run on, but not only is linux better, but it can run on more powerful platforms. Darwin may be ported to x86, but a kernel isn't an operating system as GNU pointed out. Bottom line is that OS X can't run on other hardware then PowerPC, which isn't a very powerful platform. The only way Apple can make OS X succesful for server is if they port the whole OS to x86 or Alpha which are not only industry standards, but are much more powerful then PowerPC.
This page was generated by a Barrel of Circus Midgets, and that is the way I like it!!!
Therefore, Mac OS X is not convinient for server admins.
Less is more !
In other news, all your base are still belong to us.
I hereby place the above post in the public domain.
Err, no quote on console there, damn typos...
DO NOT LEAVE IT IS NOT REAL
When you compile these applications, doesn't the source code contain platform-specific optimizations?
It wouldn't surprise me that the implementation of Linux sendmail (for instance) has been tweaked to run faster than the OSX version.
Obviously, the excuse "its not the OS, its the apps" holds little water... since the OS is only as good as what you run on it... but still...
People buy OS X for different reasons than they do Linux. The fact that OS X has comparable performance is great news for the Mac platform.
I love OS X for my desktop. I don't think I'd use it on a server because I can build a cheaper server using Linux to do everything OS X does and better. But from a desktop standpoint I find the GUI and applications a more pleasant experience than what's available for Linux.
So the fact that I can run Apache, PERL, PHP, MySQL, GNU tools, BSD userland, AND Office X, Photoshop, RTCW, Jedi Knight etc on the same laptop makes me very happy. And it beats the hell out of dual-booting.
So this is great for OS X. And great for Linux too I guess. Yay, everyone wins!
Logging in to Mac OS X as ">console" will switch to a textual login prompt.
I agree. Once the GCC based PPC Linux distributions are available, a retest with Jaguar would be appropriate.
... for a Mac. When it goes up to double performance, I'll consider it. For now, it is just so many pretty colors when running in as a server. In my personal opinion, that goes for the desktop too. But I'm sure many disagree, because "OS X has feature X!" Fine with me.
Our friends at Macslash have an article about Apple recently jumping to the #5 server vendor, behind Sun Microsystems.
In another MacSlash article, Why use Linux? there is quite a lot of discussion about the merits of both Linux and Mac OS X.
Both make rather interesting reading!
--Won't that be grand? Computers and the programs will start thinking and the people will stop. - Dr. Walter Gibbs
10.2 is much faster - rematch!
A more legitimate comparison would be a $4000 Xserve running OS X vs. $4000 worth of Linux on x86 hardware.
But, we know what the results of that would be.
POSIX is all about portability. The day I can take a Unix program and recompile it on Windows without the use of an intermediary API or environment (Cygwin, MS-SFU) is the day Windows is truly POSIX compliant.
FTR, for drivers, Windows provides some POSIX support. This is why your hosts file is in a directory called etc in system32\drivers, for example. But Windows breaks POSIX in many other smaller ways. I'd really question how MS got that certification for Win2k.
"I am root. Bow before me." To this I say, "You are root, and you bear the sins of the world upon your shoulders."
Has anyone done a unbiased comparison of NetBSD on PPC (which is much more mature than FreeBSD) with Mac OS X?
If you're not a Liberal in your 20's, then you have no heart.If you're still a Liberal in your 30's you have no brain.
OS X FS (HFS+) is not journaled. OTH, which FS in Linux? Ext3 is journaled and not very good for large directories without htree patch. ReiserFS is really fast for small files and creating new files. XFS very fast for large files...
That's to say, the filesystem is possibly the bottleneck for those database and sandmail test. And don't forget the huge amount of apache log lines generated during the benchmarks.
OTH, why did he disable fsync in sendmail? Any doubt in filesystem/cache performance on OS X?
And.. for god sake, he didn't found how to disable the Aqua environment? And the console login whithout a password, what? One of my student found it in couple of seconds in Google.
Cony!
sgis ddo ekil t'nod i
Gartner has a report of the Worldwide server market for the 3Q 2002 (which grew by 3.1%). Though Apple makes up 1.2% of the server market, their sales of servers increased 273.8% (they were 0.4% 3Q 2001). Seems the XServe is making a positive impression.
shut the FUCK up about your karma...
I ran the Scimark 2.0 Java benchmarks on the same machine, running Yellow Dog Linux, kernel 2.4.19, versus Mac OS 10.2.
Here are my results
Yellow Dog 2.3: SciMark 2.0a
Composite Score: 139.92947174097748
FFT (1024): 123.98639890992068
SOR (100x100): 166.2888365390105
Monte Carlo : 11.87347214947242
Sparse matmult (N=1000, nz=5000): 119.76608441786847
LU (100x100): 277.7325666886154
java.vendor: IBM Corporation
java.version: 1.3.1
os.arch: ppc
os.name: Linux
os.version: 2.4.20-0.7bsmp
MacOS 10.2: SciMark 2.0a
Composite Score: 65.55278911110278
FFT (1024): 45.766180267285044
SOR (100x100): 148.7766358092264
Monte Carlo : 8.128496082717385
Sparse matmult (N=1000, nz=5000): 43.78407287809933
LU (100x100): 81.30856051818576
java.vendor: Apple Computer, Inc.
java.version: 1.3.1
os.arch: ppc
os.name: Mac OS X
os.version: 10.2
Machine:
processor : 0
cpu : 7455, altivec supported
clock : 999MHz
revision : 2.1 (pvr 8001 0201)
processor : 1
cpu : 7455, altivec supported
clock : 999MHz
revision : 2.1 (pvr 8001 0201)
bogomips : 999.42
total bogomips : 1998.84
machine : PowerMac3,6
motherboard : PowerMac3,6 MacRISC2 MacRISC Power Macintosh
detected as : 129 (PowerMac G4 Windtunnel)
pmac flags : 00000000
L2 cache : 256K unified
memory : 256MB
pmac-generation : NewWorld
Mem: 253776
You known OpenBSD doesn't support mutiple CPUs (stable, on x86) right? Have you ever used OpenBSD, or are you just throwing it around because it's hard core and cool?
Don't waste your time with Suse - if you need speed on PPC then go with Gentoo. After enjoyable installation the system will be both super fast (very optimizaed) and very user friendly (Gnome 2).
Less is more !
??? "extensively balanced" ???
The article looks rather short to me, to be called extensive!
Have fun dudes
Not a very useful benchmark, seeing how LinuxPPC is not nearly as fast as Linux/x86. Nobody in their right minds would buy an XServe to run Linux on it. If anything it is a miracle that LinuxPPC on comparatively foreign hardware ends up ahead of MacOS X Server running on its native hardware platform.
I have been saving up my money and now have a dilemma. Should I buy a Mac or buy a PC and use the spare $100 bills to light cigars? I appreciate the help. Thanks.
Or you can have a look at Apple's benchmarks. Guess who wins on their tests (they run OS X agains Linux, Windows 2000 and Solaris).
This is as relevant as the MIPS rating of a CPU (null, to be explicit). I'd really suggest them to take a look at some hardware reviews from gaming sites (e.g. firingsquad) to learn some benchmarking methodology.
And yes, pipes are much faster on Linux than on Windoze. Is it a relevant performance measurement ?
The Raven
The Raven
Actually, there is quite a bit you can do, since most of the actual web stuff is in the BSD layer. 10.1 is based on an older kernel, and 10.2 adds a lot to it. I'm not sure if all the additions really make it faster, but honestly, I don't know.
Type this on a macOS X box:
sysctl -a
Some of these settings are sub-optimal for a server (at least with Jaguar, not necessarily OS X server). You could do something like this:
sysctl -w kern.ipc.maxsockbuf=2097152
sysctl -w net.inet.tcp.sendspace=262144
to increase your TCP buffers, for instance. I know there are more areas for performance tuning, but I don't know them well. Search for sysctl on the web and you're bound to find some.
Interesting how the blurb both states that it's based on BSD, which is decades old, and then says that the OS is one year old.
Apple haven't produced their (admittedly great) OS in one year, people. They took matured BSD code, spent a few years developing Aqua, and here's the result.
Am I right, or am I right?
For me to take in the relevance of his "requests per/sec" scores.. I would really like to know what was the command line he used with "ab" (apache bench).
Such as home many requests he tried? what concurrency ? etc...
AFAIK it's based on the mach kernel (much like the Next OS)... and after reading about it's file layout/user environment &c it seems less and less like today's BSDs even superficially. So why call it a BSD varient? According to McKusic, Bostic, Karels and Quarterman mach was based on 4.2BSD... and all the modern BSDs are 4.4BSD derived. That's a big difference imo (esp considering Mach has been through a couple of versions since the first version). I don't see alot of people calling Solaris a BSD varient.
Next Microsoft will be calling XP linux based and we'll all eat our own socks.
as a desktop os, it beats the hell out of freeB etc. it's better than LiNix
"Next, I set up exactly the same server environment both under Mac OS X and under Linux with the 2.4.19 kernel. I always made sure to use the same version of the server software both under OS X and Linux, each time re-compiling the binaries from source locally with the 2.95 gcc compiler, which is available on both platforms. The compiler itself was also locally re-compiled, taking all reasonable optimizations into consideration.
Since for the life of me I couldn't figure out how to shut down the GUI environment of OS X, I configured a simple VGA X server for Linux and started KDE, just to have a fair basis for comparison. "
now before i go off on a flaming tangent i will simply ask if OS X will run WELL without a GUI. i dont use macs, and dont really care to (but i would be more than happy to tout mac over winslow) but if this is possible and mac OS X has a powerful shell (BASH , korn, tcsh ?) then i could see it helping significantly with dethroning the king (that'd be MS) .
so to all you OS X geeks out their- "does OS X have the capacity to run purely from the shell ?"
also of note " can you customize a kernel under OS X?"
and exactly how much of a load does the OS X gui put onto the box ? is it comparable with what X does ?
"Two things are infinite: the universe and human stupidity; and I'm not sure about the the universe." --Albert Einstein
I've emailed Moshe a few times, and he actually prefers gcc 2.95 to gcc 3.1. You don't have much of a choice in Jaguar, but he'd probably stick with 2.95 in linux, which would result in a disparity in the benchmarks.
as far as b) - this shouldn't be necessary. Both OSes should ship in a good configuration for general use. Tuning the OS for specific tasks would probably result in more sets of benchmarks for different configurations, as not everybody uses a server for the same tasks. Also, this would greatly lengthen the article, probably making it a good candidate for a technical write-up on somebody's personal site, but too big for an article in Byte.
Karma: Ran over your dogma.
A 10% performance difference is a wash as far as most sites are concerned, for a large site you will see this sort of a difference eaten up in your hourly traffic variance (e.g. you spec for the peak load, not sustained load) and if your bottleneck is at your servers then you have other problems to deal with. I can max out a reasonably sized internet uplink with a single, off-the-shelf PC. Given the cost of these boxes, it is _always_ going to be the case that your monthly bandwidth bill exceeds the cost of the servers needed to max out that connection. Think about that one for a few minutes and then get back to me on why you think a 10% performance difference is going to be a significant factor when it comes to purchasing decisions...
When I was running YahooMail ops we used massive farms of FreeBSD boxes, not because it was the absolute best server PC OS when it came to performance (although at the time I think that it probably was) but because it was what we knew best. Filo was a BSD hacker and we had a collection of ops guys who knew that particular OS inside and out -- if there was a problem we could track it down and figure things out, we didn't have to start guessing or need to make an appeal to newsgroups or mailing lists for help. For a large site performance numbers like these are one factor, but it is not the only factor and is often not even the most important factor. Maintenance and management can often be a more important cost factor then raw performance, sometimes it is something as "trivial" as driver support (or even raw performance differences among various drivers and OS configuration options) or what the team doing the technical evaluation feels comfortable with using and supporting.
NextStep was old BSD on Mach with a GUI.
The old BSD kernel was replaced by NetBSD.
The old BSD user code was replaced by FreeBSD.
The old NeXT GUI was replaced by Apple stuff.
The old Mach... is still there, eeew!
So as it turns out, you are wrong.
Sorry, you're smoking crack. For large sites that want to run OS X (this covers SUCH a large sample size) they buy two of them and call it a day. Still cheaper than paying an admin for 3 days.
If you're big enough that you're maxing out your server, you buy a new one.
There are FEW problems is computers that aren't solved by adding another server, things hosted on OS X don't fall into them.
Alex
it appears that Mac OS X Server 10.1 was doing pretty good for a 1-year old.
/.
Oh, you're so merciful when it comes to Apple. I'd never expect this kind of sympathy for Intel or MS on
With such uninformed writers pushing linux, no wonder people are getting turned off and switching in droves to FreeBSD.
Mac OS X Server 10.2 is free (plus S&H) for all Xserve owners:
http://www.apple.com/server/uptodate/
In other words, he should have been using 10.2.x.
Although I quite like the Xserve machines, I still think they're overpriced.
We got a similarly configured x86 1U server a few months ago (256Mb PC133, 60 Gb 7200 RPM IDE, ASUS Mb , PIII 1GHz, CDROM + floppy) for under $1000 (US).
Admittedly, this is a no-name machine, but all the parts are from reliable manufacturers.
Our VALinux, Dual PIII 800Mhz, 512Mb ECC, 2 x SCSI 9Gb, Dual Ethernet, Intel 44GX Mb, etc... machines from two years ago (!) were about $3000, but those are FAR sweeter machines.
Netbsd and Openbsd are the only bsd distro's that are stable and out of alpha for the powerpc platform. Last time I looked at the powerpc freebsd project, the big news was that perl compilied! Obviously its very alpha and would do injustice to freebsd because the optimizations are not there and that is assuming FreeBSD would be mature enough to run these tests. Can mysql even compile on it yet?
Also it has been said here before and I will say it again that the kernel in MacOSX is not Freebsd based!
Its based on Mach and Nextstep! Only some of the libraries and a few programs have been ported. All the i/o code is based on Mach and not FreeBSD. Its the i/o code that needs some work.
Also I expect a micro-kernel vs a macro-kernel flamewar to show up on this thread to explain why this is. Since both FreeBSD and Linux are macrokernel based, all of the i/o code runs in the kernel. On MacOSX most of the i/o runs in userland. They really are apples to oranges.
http://saveie6.com/
The fact that OS X needs to improve in VM and I/O handling is understandable given its relatively young age. After all, Linux has had more than ten years to get where it is today, and even that is not much by OS standards.
i would have expected the guys at apple take the vm and i/o handling from bsd and maybe tweak it to make it faster. they did not write this from scratch - so what's this age comparison about? linux does not have a consistent history of beating bsd in this department...
This is a good test to see how efficient MacOS is. And personally, I'm a bit surprised that Linux "won"; after all, MacOS was supposedly written by people who know that hardware inside-out, and should be very well optimised for it.
But this is not much of "MacOS vs. Linux" server benchmark, because Linux can run much faster on other plaforms. Why should you buy an Xserve to run Linux when you can get Intel / AMD / Transmeta systems that are faster and / or cheaper? The main (only?) reason to buy Apple hardware is the operating system. Which, judging from these reults, definitely has room for improvement.
RMN
~~~
But isn't FreeBSD (off which Mac OS X is based) older than one year?
Yes, but... why should they 'switch over' to OSX when Linux is cheaper and faster, even running on Apple's own hardware...? If anything, this may convince some people who are running MacOS to switch to Linux (not that I think it will, because people who run MacOS are unlikely to be performance freaks).
.NET. MS operating systems have pretty steep hardware requirements, but once you meet those, they are quite competitive. Of course, you need a competent sysadmin, but the same goes for any OS.
Also, you may be slightly mistaken about the performance of NT / 2000 /
RMN
~~~
Moshe Bar articles are always full of errors. I don't know why people still refer to his junk. I've never used MOSIX, but if his Byte column is any indication of quality, I don't think I ever will.
why not just not log in??
Don't drag FreeBSD's good name through the mud because OSX is a dog. The Darwin kernel has very little to do with FreeBSD.
The Darwin kernel is, in fact, a shotgun wedding of ancient, circa 1992 Mach with a (very few) patches taken from FreeBSD. The core of the OS is ancient, dusty, cruft Mach. If anything, MacOS's closest relative (besides Nextstep) is DEC Tru64 UNIX. It is notable that DEC did it right: Tru64 is as fast as a bat out of hell, and Darwin is a dog. Download the Darwin sources and take a look for yourself.
BTW, its obvious the author did not try very hard to disable the gui. One can simply log in on console
with the '>console' login, no passwd, to exit the gui and get a text-mode getty on the monitor. In 10.1,
this is the best way to get a stack trace when the machine crashes.
so he bothers to get the latest stable linux kernel, but installs an older version of OS X? And with the benchmarks pretty close, it still doesnt dawn on his "fair" mind to maybe try and install the latest stable OS X? [Being 10.2 for those of you just tuning in]
I'm sorry but this is just more biased Leenux rah rah bullshit.
I'm an MCSE and I NEVER recommend Microsoft products if I can help it. I was never blind to Linux while I was going through the MCSE learning and testing process, it just seems to me that as a Marine leaving the service soon, every cert I can get will help me since while most of you guys were getting their college degrees I was humping a pack and an M203. I went to a couple of MCSE classes before I figured out they were a waste of time and I noticed most people there had an open mind to Linux and Open Source in general. I've come quite a ways from dumb grunt but I still have a long ways to go in the IT field but I'm enjoying every minute of it. Anyway, try not to crack on all of those MCSEs. Some of them are people trying to better themselves and others have just come out of the geek closet. Of cource if they'e bashing Open Source, get'em :)
This guy is way out there
...to have a contest. Bring experts from each OS division to high-tune their OSes. Acommodate any BSD distributions, etc. that run on Macs (I'm sure Nader would approve). Only then would the scrutiny be a fair one that everyone would accept.
m sims.
I've seen a calender tool too but i'm not sure where it is. If you get QMail, Horde, IMP and Courier (IMAP for Horde/IMP) running you should have no problem finding the calender stuff.
Qmail is here
Horde/IMP is here You need horde to run IMP (and PHP).
I highly suggest buying QMail Handbook it saved my sanity.
OU 31 CU 24 (ABC 2:30pm CST this saturday, I'll be there!)
Nice article, but who cares about LinuxPPC?
It would be far more instructive to see the same tests run on:
OS X 10.2.2 on the XServe
Darwin 6.0.2 on the XServe
Darwin 6.0.2 x86 on whatever box you can get it running on
Linux on that same box
Linux on a normal, powerful box
From the article:
"Having said that, let's look the Apache results:
URL OS X 10.1.5 | Linux 2.4.19
624.1 reqs/second | 703.5 reqs/second
From these results one can assume the VM and network stack of Linux to be superior to OS X. It could also be that the page reclaiming algorithm is simply smarter in Linux than in OS X."
Is it just me, or does Moshe come across as a bullshit-artist? This guy honestly sounds like he has no idea what he's talking about.
This is pretty much acknowledged by everyone on the list. There are a couple of issues, not the least is that there is only one color scheme that works well, the others are very very slow.
Second seems to be an alignment issue in how java (and the underlying gcc math libs) are compiled. Doubles are misaligned which is a big hit on PPC platforms.
According to the Java Developer's list for Apple, these issues were basically unfixable with the existing 1.3.1 due to time constraints and underlying Sun code. I'd expect the eventual release of 1.4.1 to be much faster.
The name "OSX" may be new but OSX is the latest version of NeXTstep which first appeared in 1988 and (I think) predates Linux.
... for a moment and get outside and realize you are more than virtually alive.
X11 is window-based, so you can throw arbitrary windows at arbitrary displays to your heart's content, whereas Windows Terminal Services are a session-based system (i.e. log-in-and-run-your-app-and-log-out).
:P
And then there's cost
-- "Those who cast the votes decide nothing. Those who count the votes decide everything." -Joseph Stalin
GNU/Linux edges it out in the performance... but we all know the real reason to use MacOS.
This is left as an exercise for the reader.
On one hand the Linux-heads think you shouldn't be allowed to piss unless you can do it for distance and accuracy simultaneously. On the other hand the Mac-heads think you should be grateful for the ability to piss on the floor and pay fifty bucks for an attendant to shake your dick afterwards. Sad, sad, sad, George and Martha. 1993, is that you? Is this me?
Needless to say, setting up the server environment was considerably easier and faster. Linux, with all required sub servers, was ready in about 3 hours of work, whereas a long day passed before I had my OS X ready to go.
Throughout the article it's obvious he knows Linux very well, and doesn't know OS X all that well. That is probably the reason for this disparity and probably for the results.
I thought Darwin used 4.4BSD-Lite2.
And as everyone noticed, somehow he didn't know to use 10.2, which among other optimizations would have had GCC 3.1, which is supposed to generate better code.
Can anyone explain why Apple fused BSD and Mach? What is gained by running the one atop the other rather than forking one of them to Apple's liking?
MacOS X 10.2 Server has several things that everybody should look into.
.deb files are still too much for many folks getting used to GUIs. Frankly after getting many many many installations of Samba and Netatalk myself at my home network, I'm getting tired of constant tracking of versions and features. See not everybody have a huge IT department and Apple's MacOS X does make it user-friendliner to manage and maintain updates.
1) Workgroup Manager, Server Settings and Server Monitor service running on a MacOS X Server can be monitored on pretty GUI interfaces from another MacOS X box (yes, even just MacOS X Jaguar). Starting and stopping of a service is just click and point. Toggling off OpenSSH service is just a check box ! And of course you can still start and shutdown stuff in textmode. Compare how much time you save from the GUI to ssh into a box, fire up emacs or vi and set 'ssh="YES' and do a restart and log out ?
Linux and FreeBSD should have a better and INTUITIVE way to manage a huge amount of servers. The GUI won't make any difference in one boxs, but it's going to make a big difference in a cluster. Think about why biotech companies prefer XServe.
2) The built-in Apache, Sendmail, MySQL (yes , MacOS X has built-in MySQL), SSH, Samba, Apple Filr Service do not have to do a complicate fetching of tarballs... and compilation. And "Software Update" from Control Panel are several clicks. And there you'll have regular mod_ssl update. rpms and
3) The default Apache comes with MacOS X 10.2 can run Tomcat JSP.
4) It is way more easier to add and remove users with Workgroup Manager on MacOS X Server, even adding people to LDAP servers. Can somebody tell me what softwares can I manage to do the same thing on BSD and Linux ?
Combining all of the above, I think an Apple XServe is not necessary a bad option. The price of a comparative Dell Intel 1U server probably won't be that far off. Even a $1k different is justifiable if I know it's easier to manage.
Well might you'll say using their stocked Apache and MySQL sucks. You can always compile your own version. No problem !
Apart from the obvious -i.e. I don't see the point in comparing out dated operating systems - the following quote from the article stuck out:
Since for the life of me I couldn't figure out how to shut down the GUI environment of OS X, I configured a simple VGA X server for Linux and started KDE, just to have a fair basis for comparison.
Good grief, is this reviewer simple?
Well the text at the bottom of the article says this:
Moshe Bar is a systems administrator and OS researcher who started learning UNIX on a PDP-11 with AT&T UNIX Release 6, back in 1981. Moshe has a M.Sc and a Ph.D. in computer science and writes UNIX-related books.
I don't care how much experience they have, or what qualifications they have, if a so-called "Systems Administrator" can't do something so simple I'd expect a recently graduated this-is-their-first-job PFY to do they should not be writing articles, let alone books, about Unix.
For a start, apart from commenting out the Quartz window manager at startup, which is both the obvious solution and easy to do (How on earth did you imagine it would be started? By tiny pixies living inside the hard drive perhaps?), you can simply login in with ">console" as your username and you'll instantly get a command line prompt.
BOTH of these options are perfectly well documented.
With this in mind, I'd say that any 'comparison' done by this individual is unreliable at best, and completely misleading at worst.
It's worse than pointless, because whatever random outcome comes out of this not-even-half-assed excuse for a comparison will be used in arguments and by other journals and taken as gospel for months to come.
Any why on earth chose SuSe and not "Yellow Dog Linux" or "LinuxPPC" the two most commonly used PPC distributions? SuSe isn't that common among Linux PPC users (compared to either Yellow Dog or LinuxPPC) and for good reason (it's just not as well build for PPC).
This article is a farse.
The most obvious problem with the benchmarks would be the fact that the xservers had 3MB L3 cache per CPU, and DDR RAM as opposed to vanilla SDRAM and nary a mention of even the existance of L3 cache on the "competition".
Under such unbalanced conditions, I would expect the xservers to thoroughly and unmercifully ream the crap out of the other machines, especially in applications (like the ones that were conveniently selected for the "benchmark") where memory bandwidth is likely to be the primary bottleneck.
After having recently run the BRL-CAD Benchmark (a good CPU-bound benchmark based on raytrace performance) suite on both Yellow Dog Linux and Mac OS X 10.2, we found that there is a significant difference between Apple's version of gcc and the gcc you can get "off the shelf".
This guy makes note that he recompiled gcc. I would have liked to have seen results using the same gcc, without recompiling (e.g. use the 3.1 that Apple ships compared with 3.1 on YDL).
When we ran our benchmark, Yellow Dog Linux was approximately 25% slower. That starts to push on a margin of difference that we care about. But, what was even MORE interesting was the fact that compilations took WAY longer with Apple's compiler than on Linux (1.5 hours compared to 22 minutes).
We gladly give up compilation time for run-time performance. But, then, the BRL-CAD Benchmark is almost completely CPU bound, and a good optimization loop will find lots of places in the code to try to optimize.
In either respect, that's a whole lot more time spent optimizing. I wouldn't be surprised that if he didn't recompile the compiler if things didn't work faster on OS X.
Cheers!
Sean
A. Mac loses :
:
- "It did not use the latest/forthcoming OS version that would have won hands down !"
- "Benchmarker does not know how to configure the Mac OS !"
- "Benchmark was paid by Microsoft/Intel/Linus !"
- "The same benchmark was performed by the completely impartial site www.MacXyz.com and the Mac won hands down !"
- "Performance is not important, ease of use is !"
- "Ease of use is not important on a server, performance is !"
B. Mac wins
- "Told you so, every benchmark shows that the Mac is the best !"
MacOSX put on a good show, but losing to linux by 10% is pretty substantial. Most like having aqua running caused most of that deficite.
Linux has far more people working on it, and yes, even more people working on the PowerPC architecture than apple, this is a characteristic of opensource, so I am impressed by the performance of OSX.
I have used 15 XServes and they are a really good peice of hardware, and with OSX they are EXTREMELY easy to configure. In my opinion, for the ease of use/configuration and the imediate ability to integrate into Windows netoworks with ease, the 10% loss to linux is pretty good.
I recommend XServe/OSX systems to many of my clients because they are more cost effective to set up than linux or windows machines in many circumstances. Linux wins in performance and ability to run on cheap commodity hardware, but losses on the human factor.
Someone needs to set it up, and that person is most likely pretty expensive. I charge $55 an hour to schools(which is an amazing deal) out of the goodness of my heart, and your looking at a day of setting up a set of linux machines, installing the OS, configureing the software etc. $550+ in labor + $1400+/ machine in hardware(to compete with an Xserve)about $2000/machine. with XServer/OSX systems, you open the box and spend about 45 minutes setting the thing up, and its done.about $3100/machine. not bad for a fast/reliable server.