Benchmarks For Ubuntu vs. OpenSolaris vs. FreeBSD
Ashmash writes "After their Mac OS X versus Ubuntu benchmarks earlier this month, Phoronix.com has now carried out a performance comparison between Ubuntu 8.10, OpenSolaris 2008.11 and FreeBSD 7.1. They used a dual quad-core workstation with the Phoronix Test Suite to run primarily Java, disk, and computational benchmarks. The 64-bit build of Ubuntu 8.10 was the fastest overall, but FreeBSD and OpenSolaris were first in other areas."
I was a bit disappointed by the results, being a FreeBSD fan myself. However, in my quick scan of the article, I didn't see any mention of how they configured the OS. If they truly used the stock 7.1-BETA2 install, that would mean that debugging mode is enabled in the kernel (and maybe the userland, I'm not 100% sure here). Unless I've misunderstood FreeBSD's release methods over the years, they don't disable the debugging until either the RC builds or maybe even the final release tag.
Still, FreeBSD came out on top on 3 of the tests -- not bad for a beta release. I can't wait for 7.1, as using 7.0 on my desktop since its release has been great. I just hope the fully-virtualized IP stack within jails made it into 7.1, as well as a slightly more stable ZFS.
Method of processing duck feet
Except that they tested FreeBSD 7.1 beta 2. FreeBSD betas are compiled with extra debugging and checking code which slows the end result down a lot. This includes the WITNESS kernel flags and the malloc checking. These encourage early and reproducible failure for bugs. For release versions of FreeBSD, these are turned off, which generally gives a noticeable speed increase. I note that the Solaris version they tested was a release candidate too, so I wonder if the same is true there.
A lot of their benchmarks seemed to be CPU-limited, with little OS involvement (e.g. FFT, RSA). Differences here are likely to be more down to malloc() implementation than anything in the kernel. In a FreeBSD beta, malloc will be adding guard pages and initialising data to a known value to check for overflows. In Solaris, I'm not sure what the current malloc() strategy is - last time I used Solaris it was still using a brk()-based malloc() (where FreeBSD and Linux both now tend to use mmap()-based versions).
I am TheRaven on Soylent News
Uninstalling FreeBSD means deleting the partition. It either uses the boot loader you already had installed, or it installs a multiboot menu that fits in the MBR, so continues to work when the partition has gone away. If you install Ubuntu, I believe it installs grub and points the MBR at stuff on your /boot partition. If you destroy this, you will not be able to boot any OS.
Not that this is a major problem, since uninstalling an OS (outside of a VM) is not something that many people do very often.
I am TheRaven on Soylent News
Except that they tested FreeBSD 7.1 beta 2. FreeBSD betas are compiled with extra debugging and checking code which slows the end result down a lot. This includes the WITNESS kernel flags and the malloc checking.
This is only true in HEAD which will eventually be FreeBSD 8.x. They are turned off in the FreeBSD 7.x branch (RELENG_7)
I have not played with Open Solaris but with normal Solaris you need to set parameters in the /etc/system file to get good performance. By default Solaris is set very conservative. In many tests I have run Solaris may not be the fastest with single test but under a heavy load with many applications running my experience has been it can handle a much bigger load then Linux on the same hardware. I use both but for backend heavy loaded servers I would choose Solaris.