Summary/background: DragonflyBSD split from FreeBSD (partly) over multicore strategy, FreeBSD going with threads and fine-grained kernel locks and DragonflyBSD going with a microkernel and multiple processes (not entirely dissimilar to GNU Hurd.)
This post shows a standard PostgreSQL benchmark on a big machine (2 cpus * 6 cores/cpu * 2 hardware threads/core, 96GB RAM) and the news is that Dragonfly is approaching FreeBSD's performance (while hopefully being more flexible/secure due to the microkernel design).
As an aside, Scientific Linux handily destroys both FreeBSD and DragonflyBSD in localhost benchmarks, but crashes rather a lot. (This seems odd, but the focus is on the DragonflyBSD / FreeBSD comparison anyway.)
I don't know that the issues reported can be called "crashes." Rather it is locking up, probably because there are not enough resources reserved for the terminal and therefore the terminal becomes unresponsive while waiting for an opportunity to run.
It was also the less stable. I discovered more than once the machine was
completely frozen (blank screen, no keyboard or network response). Even a NMI
couldn't change anything.
Not a hard crash because the computer eventually would recover on its own as load lightens up. It's just a matter of interactive tasks not getting the priority you want them to have.
Hmm. I remember back in the day, when the display driver could crash on an NT 3.51 box, but SQL Server would still be up. We treated that as a crash.
A machine that was not responding on the network is getting its database transactions from where exactly? It's crashed, even if the disks are still spinning.
Thanks for the summary. I was drawn in by the magic phrase "PostgreSQL benchmarks" but didn't know enough about DragonflyBSD to know the reason the results presented were of note.
SL is a RHEL clone like CentOS. This was the 6.1 release, which is 2.6.32 (plus a ton of patches) and corresponds closely to Red Hat's latest and greatest. It's not an unreasonable choice if you just want to add a "Linux" line to the graph.
Remember this is a narrow benchmark of multi-core scalability under a SQL load. It's not particularly useful as evidence in OS flames, and the goal isn't to see "how much faster" Linux is, but rather to characterize areas where Dragonfly needs work.
(I will admit I was surprised at how much better Linux did at the heavy-SMP side of the graph though. Edit for clarity: I'm not at all surprised that Linux does well; I live in that world too. I'm surprised that it does so much better than the BSDs. At the right edge of the graph, Linux is still flat where the other kernels are dropping fast due to overhead, and Linux is doing 3x-4x better. That's surprising.)
I'm surprised that you're surprised- there are a lot of people who work on the Linux kernel, more than Dragonfly or FreeBSD, and they generally care much more about this sort of graph than desktop performance.
OpenIndiana aims to be binary and package compatible with the upcoming Solaris 11 and Solaris 11 Express, and most of the operating system is built from source code that Oracle continues to make available. So in some ways, our relationship is similar to the way the CentOS project tracks Red Hat Enterprise Linux.
However there are differences, for example we intend to use illumos in place of the official OS/Net consolidation which is no longer open source, and we also intend to provide improvements on top.
What is the relationship between OpenIndiana and illumos?
OpenIndiana provides a complete, ready-to-use operating system (distribution) similar to the former OpenSolaris distribution.
> Additionally, if fsync = on in this test, then you're mixing a file system test with a database test.
Which is reasonable, given that file systems of any reasonable performance level (read: not user-space file systems) still tend to be bundled with one or at most a handful of reasonable kernel implementations. Turning fsync off would highlight some interesting bottlenecks, but I'm not sure if that makes for the most sensible comparison either. Not only is the fsync/checkpointing period of a database's operation important to model in a broad-spectrum benchmark, but some amount of file system coupling is unavoidable. One example is metadata syscalls to the file system, which have been a point of poor concurrency before[0]
I agree the fsync = off benchmark would be interesting, but I don't think it's fair to say that the information of an fsync = on test is a) less valuable/clearly improperly performed b) necessarily indicative of the most important bottlenecks for database workloads. A kernel that takes a huge lock during fsync(), for example, should be penalized for it.
Finally, fsync = off doesn't accomplish the stated goal of "independence" from the file system. And as seen in Robert Haas's post, non-fsync file system calls can be the problem in high concurrency situations.
This post shows a standard PostgreSQL benchmark on a big machine (2 cpus * 6 cores/cpu * 2 hardware threads/core, 96GB RAM) and the news is that Dragonfly is approaching FreeBSD's performance (while hopefully being more flexible/secure due to the microkernel design).
As an aside, Scientific Linux handily destroys both FreeBSD and DragonflyBSD in localhost benchmarks, but crashes rather a lot. (This seems odd, but the focus is on the DragonflyBSD / FreeBSD comparison anyway.)