Benchmarking the Scalability of BSD and Linux
Fefe writes "I recently did some benchmarks for a talk about scalable network programming I held at Linux Kongress 2003. The benchmark results turned out to be surprising enough to present them on their own. This ought to end those pesky flame wars about whose IP stack or memory management scales better. Or maybe not."
His experiments noted a few crashes. HELLOOOOO. That's a clue. Check out this line from the study: Reluctantly? Why reluctant? He's already installed the non-stable branch. Why not go whole hog and run current? It's like he was trying to make freebsd fail by installing an experimental non-stable branch.
Sheeeez. Just for those who don't know, it's important in freebsd to not just look at the version numbers, but also look at what the branch is -RELEASE, -CURRENT or -STABLE. Right now, only the 4.x branch is -STABLE. Just because the version number is higher does not mean you should upgrade. Stick with -STABLE, unless you know what you're doing
Now, I'm not saying linux won't do a great job compared to freebsd. It's just that this study did everything it could to slant against freebsd. What kind of reaction would the community have it this had been released by Microsoft? I suspect in this case, it was just a beginner's mistake.
Benchmarking is hard work. He should redo his study with proper installations from a -STABLE tree, and report back in.
I hope RMS reads the slides. They're in German at the link I used, so here's a translation of slide 13 which is page 14 of the PDF file:
"The memory required for an empty process is shockingly large on current Linux systems. However, this is not the fault of Linux, it's the fault of GNU libc.
GNU libc leads all libc implementations by a large margin in bloat and waste of memory. One day it got so painful that I wrote my own libc. With this, a static binary of 'Hello world' took only 300 bytes..."
I've long suspected that FSF stands for Fat Software Foundation.
(He doesn't say, but I assume his home-brew libc was a subset, otherwise we'd all want it).
Please have a look at the topic again.
"Open Source Software clearly superior"
superior to what? I missed the point only half as much as you did, at least it appears to me so.
I'm wondering, if he was going to be doing a scalability test, why didn't he test the version of FreeBSD that is actually reccomended for production (4.8)?
He had the time to test the stable and devel versions of the linux kernel, but only the new technology version of freebsd?
Oh yeah. And he didn't test unstable versions of Linux like 2.6. Oh shit, he did! You're an idiot!
There's no need for such a very technical benchmark.
Regular usage of various operating systems on the same host makes it obvious.
When it comes to speed and features (or bloat), Linux is more efficient than FreeBSD, NetBSD and OpenBSD. This is especially significant in SMP environments.
Linux users are always talking about the just-released experimental patches that will help their system to get 0.1% faster, or the most aggressive flags to optimize their Gentoo system.
BSD users just advocate their system with the generic word "robust".
Nowadays, stability is not really the key. Every Linux or BSD free operating system has basically the same stability. The software is the same, with the same bugs. The package system have equivalents (Debian works on NetBSD, Gentoo works a lot like BSD ports, etc) and support for common hardware is almost identical.
The reason to choose one OS over another is often more political than technical. People tend to use FreeBSD just to try "something else". People tend to use Linux because the Mandrake/RedHat/Conectiva/SuSE installers are beautiful or because Gentoo is fashion and a good way to learn what Unices are made of.
But if this is just to use common software like Apache and Qmail there's no real difference except speed. If this is what you need, Linux is definitely the best choice nowadays, especially since 2.6 kernels are almost ready for production use.
For other needs, your mileage may vary.
For instance I love OpenBSD for development. The compiler and the libc have very handy features to automatically detect bogus code. And the man pages are also excellent, with helpful hints.
For firewalls and trafic shaping, I wouldn't use anything but *BSD because of PF. PF is really the best thing in *BSD systems IMHO. The firewall is very easy to configure yet extremely powerful and fast. And I was fond of Iptables before.
For bridging and transparent firewalls, I would also use BSD because it seems to work better than Linux in this area.
In fact it's just like the girl of your dreams. Everyone's always looking for the perfect operating system that will perfectly fit all needs, but it just doesn't exist.
{{.sig}}
I'm personally glad that ports to things like vaxen and 68k macintoys are dying. Why waste time maintaining code for systems that are the computer equivalent of a beta VCR?
It helps ensure your codebase is more portable. By porting to "Dead" architectures (meaning ones that aren't going to change), you have a constant target that allows you to work out bugs in your codebase (possibly for all architectures) and ensure that it works correctly.
Furthermore, if someone is really dedicated to an "dead" platform, it may result in faster code overall, as they may start working on optimizing portions of the codebase for increased performance.