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."
Various versions of GCC. While one could argue that the compiler is part of the OS it's indeed replaceable so I would had prefered if they had used the same version of GCC and not different for each OS.
It would had been very interesting to see the Solaris results using Sun Studios CC as well (I think it's also available for Linux nowadays?)
Is that true even if you install grub/lilo to MBR instead of the bootable partition? Do it need anything from /boot? I doubt that?
Sure the boot loader wil remain, but so what? Also it's quite obvious that you need to update it so ..
It's not like Windows offers a way to easily uninstall it either, or even ask before overwriting it ..
You have to do what now?
Ubuntu uses Grub for choosing what to boot and that has the active flag. No matter what OS you use, if you want something else to handle booting you have to use fdisk or the like for changing the boot flag.
Yes, I, too, find this nut and bolt set inadequate for the purpose of assisting Chinese Rhinoceros to learn Western astrology. It seems silly that purple monkey dishwasher.
Easy to uninstall as what? An application? Is not an application that runs over Windows and you uninstall it cleaning registry and deleting some files.
Try to uninstall windows the same way... you always have to mess with some boot loader, or at least, whatever that replaces your boot loader.
There are a lot of space to complain about linux missing something or making something harder (playing some specific games, not having some windows-only program, not supporting some hardware that developed/documented drivers only for windows, etc), but installing something to boot itself is almost a must do for all operating systems.
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
.. but what it's missing is the ability to easily uninstall it. It's not the only distro not to be easily uninstallable
sudo rm -rf /
dammit so /. decided to eat my good post so I'll just leave the quick and dirty instead.
This is why /boot gets its own partition, it lets you remove things very easily, and adding them is simple as well.
Even with all that extra 'default' weight Ubuntu still shines on except when running, eh, Java.
From my personal, and non-scientific experience, I've found OpenSolaris to have more 'default' weight than Ubuntu.
One of our competitors trademarked the term "hypothesis". From now on, we will call them "boneheaded ideas".
The reason that I never really seriously used Linux on my PC laptop was that Ubuntu was sluggish, even with the newest ATI drivers, compared to Windows. Maybe people have good experience with nVidia drivers there, but Windows is a lot more usable as a desktop for me on the performance side of things. Granted, my main computer is a MacBook Pro running Leopard, but I can't imagine putting Linux back on my old PC laptop for when I need to use it.
Huh? Ubuntu is an OS not an application. It installs its own boot loader called grub. It does this because the windows boot loader will not recognize a linux install. Perhaps your beef, if you truly have one, is with MS. They could make their boot loader play nice with other OS's. I believe you can load windows with grub just fine. The /mbr restore for windows is to wipe grub and go back to using the windows loader.
If you think any other non-MS OS is easier to "uninstall" then youre just wrong.
Yeah, because Solaris and FreeBSD are so stripped and optimized for the purpose by default? =P
I still think it's somewhat useless since they had various versions of the compiler, you can't draw any conclusion about the kernel/OS speed when the compiler varies and you can't draw any conclusions on the compiler when the kernel/OS differ. So ...
Put two rowers in whatever boats they happen to have, let them row for a goal, see who wins and decide that person was the best rower? Or which boat was the best one ..
I always hate that factor when people do these stupid comparisons, why not use different versions of the benchmarks to? =P, unzip different archives? :D
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
Could be nice to do those comparisions in the same hardware betweeen i.e. Ubuntu, Gentoo and OpenSUSE, all for 64 bits, as is not clear when they are measuring against Linux or against optimizations or not that do a particular distribution. Or put where it applies (i.e. the java tests) the numbers for Windows and MacOS.
Interesting results, and great if you're planning a server, but what about desktop use?
How well does each OS do when doing something like playing back audio/video, and handling background processing loads? What about performance and system response as the load climbs up? (load averages of 5/10/20 ?).
Only because I've seen Linux systems start to crumble around 5 (uniproc machine), and easily get unusuable, but have heard reports of BSD machines being able to still play MP3s without skipping/suttering even around 20 or so...
(And yes, I'll allow tweaking system priorities - it only gets you so far, and impacts the other background processing tasks, to which we'll also be interested in how long they take to run. So renicing the media player to -20 works, but not if it makes all the other tasks take 10x as long to finish...).
I still think it's somewhat useless since they had various versions of the compiler, you can't draw any conclusion about the kernel/OS speed when the compiler varies and you can't draw any conclusions on the compiler when the kernel/OS differ. So ...
I disagree. While these benchmarks are indeed of limited complexity and utility, they offer a snapshot of out of the box performance on 3 OSes. Obviously you can optimize all of them substantially, try bleeding edge kernels, later revisions, etc.
thats not how it works.
ubuntu software runs on the windows that pcs run on and so you need to remove the ubuntu layer to get to the normal windows again.
when you uninstall ubuntu it puts the desktop colours back to the normal windows ones so you can run your programs again. though you need to reinstall some programs still.
if windows was not also installed there is no way to run ubuntu as you still need to move the mouse.
Sorry, I got a bit carried away there. Eh, what was the article about again?
Genesis 1:32 And God typed
I know they tell how the system performs in its default state, but in that case why even bother to compile the benchmarks? Shouldn't you be using whatever versions is available as packages if there is any?
And default versions doesn't matter much, if anyone is serious enough to start compiling all their own applications they sure will be able to switch compiler version, and there may be both advantages and disadvantages with a new or old version so it all depends on what you want. In this case Ubuntu took many scores except in filesystem but also had the latest GCC, what happens if you compile the same GCC on FreeBSD and Solaris, compile the benchmarks and look again?
Also most people into Solaris would probably be willing to go thru some extra trouble to compile their stuff with Suns compiler.
I have no idea but I guess that GCC may have the best support for Linux to? Also there is that "new" BSD licensed compiler, I don't remember the name, I have no idea if it's complete enough to be able to compile said benchmarks and compete with GCC but it would had been interesting with that one to. If nothing else to compare both compilers.
Interesting don't have to mean "useless unless" in this case :D
If they wanted a good comparison of what a user sees, they should have used a release version of all operating systems, instead of a release of Ubuntu, a release candidate of Solaris and a beta of FreeBSD. I don't know about Solaris release candidates, but FreeBSD betas come with a lot of extra stuff in libc and the kernel turned on that make tracking issues easier at the expense of speed. Most end users will not be running betas, they will be running the latest stable release.
I am TheRaven on Soylent News
Forget uninstall. Is there even yet a way to *install* Windows without trashing the MBR w.r.t other OSes? If not, I say Windows is not ready for the desktop.
Yeah, and they were using a Solaris Release Candidate as well, to really make a fair comparison, you would, I think, want to use actually official "production" releases of each operating system.
In the end, the results don't really seem to stand out a whole lot, except that Solaris does signifacantly better on a couple benchmarks, and then significantly worse on others.
This couldn't come at a better time. I was recently wondering if FreeBSD was a good platform for deploying our first Java EE application (since we use fbsd for everything else) or that Linux or Solaris might be better. It's good to see that FreeBSD isn't all that bad, but I know now that switching to (Open)Solaris might be worth it. But as far as I see, OpenSolaris is mainly geared towards desktop use, isn't it?
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)
Beyond that, how hard do these tests push SMP systems? For example, the Gzip results could be explained away by compiler version differences. What would happen if it were run twice in parallel? 100 times? This test suite compares that for all I know, but I didn't see that mentioned anywhere.
Dewey, what part of this looks like authorities should be involved?
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.
Grub needs it's stage files and config file. Lilo however, lives entirely in MBR.
For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
Wrong. You can always put the Win installer disk and choose to restore the MBR F2 or F6 (not sure) on the start up menu.
Does anyone know if the Phoronix Test Suite will work under OpenBSD and NetBSD too? Says on the website: "Runs On Linux, OpenSolaris, Mac OS X, & FreeBSD Operating Systems"
I'm curious as to how the other BSDs would perform.
I absolutely agree with you.
Exactly. The system is unbootable. You need to add a bootable device (e.g. the Windows install disk) in order to boot it.
I am TheRaven on Soylent News
I am curious to how it actually performs and not just what most the slashdotters say.
It may actually suck and I am curious as to how much.
I am contemplating leaving vista where I do php, apache, and java development. I wonder if there is an advantage at all.
http://saveie6.com/
To be fair, if you decided to use NTLDR instead of GRUB and you delete your Windows partition, the system is rendered unbootable as well. So in this instance, Ubuntu is no worse (or better) than Windows.
FreeBSD does do an excellent job by making the bootloader small enough to fit in the MBR.
Except for Bonnie++, all of their benchmarks are compute-bound. In other words, they're benchmarking the bundled compiler, not the distribution.
The one exception is Bonnie++, on page 6, which measures raw filesystem performance... and is something that is known to greatly depend on how old and how full a given filesystem is.
Why wouldn't the testers use PCBSD then? That is the basic equivalent of Linux => Ubuntu where optimization for desktop use takes place. All that "comparison" did was compare two generic type bloated RC kernels generally intended for server use vs a stable bloated kernel optimized for desktop usage. All you're going to prove is that one kind of bloat is better than another....it's not even good for a baseline.
brandelf -t FreeBSD
By default, I believe Ubuntu creates a separate /boot partition. You can free up the 20GB or whatever you're using for Ubuntu by deleting the Ubuntu partition (and the swap partition, if it creates one) and just leaving the /boot partition behind. That partition doesn't have to be very big to hold your kernels and your grub installation; you won't miss the 100MB space at the beginning of your partition table.
It's kind of crazy how so many benchmark reviews completely overlook actual use and go for one or two "bullet list" type qualifiers for their benchmarks. Granted, I understand this is mainly in the interest of page hits and ad revenue, and by making it controversial they increase those things, but c'mon. Benchmarks are supposed to be pragmatic, and in order to be pragmatic, they have to operate at or near userland conditions, considering CPU, bus, memory and network speed, and the like - as they pertain to the user (whether the user is a hosting company or a desktop end user).
It seems like a pretty trivial matter to do something like this. Say, use something like MySQL for starters - it's available for a dozen or so systems (major Linux distros, OS X, Windows, etc.) It's also typically offered by the vendor, so you'd be able to get an 'ideal' setup for each release.
Or, how about something like a "Firefox benchmark" as that's user-applicable and can use all hardware. Time how long it takes to start FF on all systems with, say, 50 tabs running.
Or how about a straight-up media playing benchmark for 2D performance? Launch a dozen or so DivX videos at once and see how well it performs: measure CPU load, memory use, and the time it takes for FF to start up completely.
Or how about lengthy disk access (maybe crawling a storage tree or such) and measure the time it takes, as well as the amount of memory which gets cached for the process?
This benchmark, as well as most others, seem pretty trivial and useless, and not all that well thought out. They're certainly not scientific!
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
ULE has been the default in 7-STABLE for quite a few months now.
Dewey, what part of this looks like authorities should be involved?
My favourite benchmark: Build LLVM trunk with a parallel make. Set it to something like -j12 (or more) on a 2-4 core machine and see how well the kernel manages overlapped I/O requests and scheduling all of the compiler processes. Try playing a video at the same time, and record the number of dropped frames. I don't think network performance was well tested in this either.
I am TheRaven on Soylent News
Yup, ULE 3 has been default for 7-STABLE for a while (and the first thing I've done since 6.1 was recompile a new kernel with ULE instead of 4BSD). ULE has matured a lot since the 5.x days, and now scales very nicely as well as managing to give very low latency to I/O-bound processes without harming throughput for compute-bound ones. ULE 2 was, as I recall, almost a complete rewrite after the original developer vanished, and ULE 3 is now outperforming 4BSD on pretty much all workloads (ULE always has on desktop workloads).
I am TheRaven on Soylent News
It doesn't as of Hardy
All three come with tunable performance parameters. All three can have their performance boosted even further by recompiling everything optimized for the particular hardware being used, possibly using specialized compilers (e.g. from Sun or Intel). But that's not the point, IMO. This isn't (or shouldn't be) a pissing match--this should be an opportunity to improve all three systems by seeing where their strengths and weaknesses are, and working to bolster their weaknesses and improve their strengths.
In my experience, these sorts of tests on free/libre/open-source systems quickly become out-of-date because the developers take them as a challenge, and that's a good thing for everyone! :)
Ff your tests were more than a couple of years ago, they're probably so out-of-date as to be utterly meaningless, but that's a separate issue. Personally, I'm a big fan of all three systems and want to see all three thrive and grow and improve. This kind of testing can only help with that, once you get past all the dick-waving by narrow-minded advocates.
That someone would actually be modded down because they happen to think that Linux isn't all that as a desktop. That sort of thing is why I think that any moderation system that allows users to mod down rather than only up is broken.
One loses performance when one goes to 64-bits, not gains it.
That's the first time I've ever heard that claim. Evidence?
One should only use a 64-bit kernel when one has more than 4 GB of RAM, and actually USES it.
On when one wants to do a lot of math. Or use ZFS (on FreeBSD). Or let the compiler use lots of registers.
Dewey, what part of this looks like authorities should be involved?
the windows boot loader will not recognize a linux install
My notebook, which has Windows XP and Ubuntu Linux, and which uses the Windows bootloader to boot the Linux partition, disagrees with you.
Or Intrepid. Not that it's hard to do, but someone who doesn't know anything about partitioning will just use the automatic partitioning, so they won't get a separate /boot partition.
That's wholly dependent upon a given data set. For instance, if you're working with a linked list of chars, then the overhead will be substantial. If you're mainly dealing with pointers to decoded bitmaps, then the extra 4 address bytes won't really matter.
Dewey, what part of this looks like authorities should be involved?
That's an advantage, but not the main reason.
The main reason for /boot is that some ancient BIOSes can't read past 1024 (IIRC) cylinders. So placing files used by the bootloader at the end of a 500GB disk wouldn't work, even if Linux could handle the disk fine once it booted.
The other reason is that people keep coming up with fancy filesystems, and it's difficult for the bootloader to support every FS with each possible option. For instance, when ReiserFS was new, GRUB couldn't deal correctly with tail packing. Having /boot on say, ext3, or reiserfs without packing solved that issue. This way, you don't have to worry about your bootloader not being able to read from btrfs, or getting confused by extents in ext4.
Note that this last part applies to GRUB specifically, since LILO doesn't really understand the filesystem. But LILO runs into another issue: Since it doesn't know the FS and follows the offsets that were determined when it was installed, it can't possibly deal with something like a filesystem that defragments itself.
euh.... nah, forget it.
No ULE in 7.1 is not a complete rewrite. It was written by Jeff Robertson and he did not vanish, he just took a break. He also fixed some issues that was present in ULE before 7 branched and prevented it from being the default scheduler. It, AFAIK, still use the same basic ideas, which sofar in my opinion is the best scheduler for any OSS-desktop with unmatched interactivity. It is, in the current incarnation, rock solid
Life is what happened when Good Intentions met Harsh Reality (the brother of the more infamous Chaos).
If you're doing any math on 64 bit integers, suddenly 64 bit mode is orders of magnitude faster because it's not hacking together the results from individual 32-bit operations. This can make a substantial difference for some applications, and a great case study is AES.
Sam ty sig.
ext4 doesn't really exist yet, and it's definitely not up to the level of ZFS. It's pretty much just a minor revision on ext3, which is admittedly generations behind. btrfs may compete with ZFS, but only in a few years when it's actually ready.
Sam ty sig.
Indeed, I use http://www.winimage.com/bootpart.htm to setup booting linux from windows.
If you take a look at the OS kernel models and would form base predictions from the kernel architecture alone it would closely mimic the results of the tests.
There is a reason kernel architecture is a highly engineered science, and why even old models of inherent pluses or negatives would still manifest even in today's latest incarnations of these kernel architecture models.
If you look at Linux, with its microkernel heritage, it is going to offer better low level kernel multitasking and kernel messaging. Also if you look at a classic monolithic kernel design (even with Apple duct tape) the OS X kernel is going to be better at straight non-conflictive messaging and queues at the kernel level with a lighter API, but have a harder time moving past the multi-threading bottlenecks.
This is also why OS X being tied to 'specific' hardware is a plus for OS X, because if it had to deal with more diverse hardware and kernel level exceptions it would be even harder to squeeze performance out of the system and not run into multi-threading bottlenecks from the MACH kernel with the BSD API interface.
The reason I am stating (in generic terms) the obvious, is that the kernel models in use in all these OSes are very DATED concepts. In fact, every kernel architecture compared in these tests and OS X where deemed to be too primative for even the MS NT team back in 1990, which gave rise to the NT kernel which is neither a microkernel nor monolithic in nature, and why MS to this day, with even as 'bloated' as Windows is seen in the technical world, can use the NT architecture to shove around some suprising numbers not only in the consumer desktop markets, but even now in the supercomputer markets, all using the same code.
So with this in mind, it isn't a NT is great speech, but food for thought that the OSS world still needs to rethink its heritage, use Virtual Machine concepts and rally around a new set of kernel architectures that can shove NT into the ground.
Until this happens, these 'old' kernel models and architectures are going to trail NT just based on something as simple as the basic kernel theory and architecture that MS chose to use and abandon the 'in use' kernel concepts of 1990 and instead build NT around kernel technologies that were nothing but a group of theories at the time.
And there is no reason that almost 20 years later the OSS world cannot do the same and give up the primatvie kernel architectures it has been rehashing and slapping bandaids on to move forward and remain competitive.
Yes there have been some really good work on the existing technologies and bringing some 'new' ideas back to these dated concepts (even Apple has done well with putting bandaids on the monolithic nature of BSD/MACH), but why continue to work backwards and keep 'repairing or patching' technologies to move them to new hardware and instead rally behind a set of new kernel designs that are just now mainly theory.
If MS could do this 20 years ago and even choose to NOT use a *nix model as well (they owned XENIX remember), there is no reason the OSS community cannot dig deeper and start from scratch as well and VM existing OS models on the new kernel technologies.
I got the impression that file writes and reads were better with Solaris.
Is not exactly what I'd say "average nix user hardware".
I bet that less than 5% of NIX users have that kind of machine on their desktops.
Why not running the test on either a "normal" desktop or even better on a laptop?
And, by the way, Opensolaris 2008.11 is still a release candidate!
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
I installed OpenSolaris on my laptop about one week ago.
Laptop: 1.7mhz celeron, 512mb ram.
Previous OS: Xubuntu.
IMO: OpenSolaris loses by a mile.
OpenSolaris installation was easy, but very slow. It hangs at 99% for hours. This is a well know bug. OpenSolaris was noticeably slower than xubuntu. Bootup and shutdown are especially slow. The worst problem is applications, I can not find a chm reader, or mp3 player that works - on xubuntu (or any linux) this is a cinch. The applications that come with OpenSolaris are old, for example firefox 2.0. After installation, I had additional configuration to get OpenSolaris on the internet, usually linux does not require such additional configuration. I find package management in solaris to be much difficult than with any debian based, or redhat based, linux. HW detection was not a problem for me with either linux, or opensolaris.
I installed OpenSolaris for the learning experience, so I am getting that. Although it may just be a personal preference, I dislike the whole Solaris way of doing anything. Ironically, the Linux CLI, directory hierarchy, and configuration files, are a lot closer to generic UNIX than Solaris - especially Solaris 10. It might be easier for me to learn solaris, if I didn't already know some unix and linux. These days, solaris is practically it's own OS, as opposed to a version of UNIX.
All JMHO, of course.
Also there is that "new" BSD licensed compiler, I don't remember the name, I have no idea if it's complete enough to be able to compile said benchmarks and compete with GCC but it would had been interesting with that one to.
You're probably thinking of LLVM. It does have a gcc front-end, so can be used to compile most things gcc can.
There's another one or two, but LLVM's probably the only serious contender against gcc.
FreeBSD betas come with a lot of extra stuff in libc and the kernel turned on that make tracking issues easier at the expense of speed.
No they don't. There's the main kernel debugging options: WITNESS, which tracks kernel locking ordering, and INVARIANTS, which adds in a lot of asserts to validate the integrity of various data structures. libc wise there's MALLOC_PRODUCTION, which turns off a bunch of debugging things in jemalloc.
None of these are ever on unless you're running FreeBSD -CURRENT (currently the 8 series) or otherwise make a custom build where you've explictly turned them on; 7-BETA and 7-RC's are built with the same options as release builds. You'll *know* when someone benchmarks a system with them on because they'll be *significantly* slower.
Well given that it can't boot headless, it is sure as hell not ready for the server market!
Sent from my ASR33 using ASCII
Nonsense. x86 has had 64-bit arithmetic support since the Pentium. Implementations have 64-bit ALUs which work on pairs of 32-bit registers. The issue is not 'hacking together the results from individual 32-bit operations' it is that it effectively halves the number of registers you have. With 64-bit values, on x86-32, you need two GPRs from your set of eight for each value. With x86-64, you need one GPR from your set of 16 for each value, effectively quadrupling the number of GPRs you can use (the x86-64 instructions also require less register-shuffling).
Note that this only applies to integer arithmetic.
I am TheRaven on Soylent News
I don't fucking get these benchmarks lately, I mean how credible is this crock of shit? You're benchmarking one STABLE system (Ubuntu) against an almost stable system (OpenSolaris) and against a Beta release (FreeBSD)... WOW that sure seems like a bad benchmark to me! In a typical benchmark, FreeBSD would've simply owned Ubuntu, and OpenSolaris for that matter! So, don't pay attention to these bullshit benchmarks, because they're worth shit, in my opinion. Puh-lease, bitch.
Insanity: doing the same thing over and over again and expecting different results.