Benchmarking the Scalability of BSD and Linux 433
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."
FreeBSD may be dying but it's fast! (Score:5, Interesting)
Also watch out as you read the graphs - just to keep you on your toes, he changes the colors in every one!
Re:FreeBSD may be dying but it's fast! (Score:2, Funny)
I would have thought that was obvious..
Re:FreeBSD may be dying but it's fast! (Score:2, Informative)
What he has to say so far tells me that his version of BSD will both scale very well AND work great in the SMP dept. The process locks that slow down linux in SMP versions and prevent its doing x amount of work for each processor added a
Re:FreeBSD may be dying but it's fast! (Score:3, Interesting)
If I understand what you wrote, that approach will work well for something with near static process creation. However, if you are constantly forking and having the number of processes/threads being created at rapid rates,
Re:FreeBSD may be dying but it's fast! (Score:2)
Actually, I am curious to see where it ends up at. It may actually do very well for small systems that are not under heavy loads. The approach will allow for much simpler code which should make for fewer security issues.
I was also thinking that it may make for a interesting virtual type system. I was thinking that UML (User Mode Linux ) could use a nice competitor. This approach would basically allow the host
Re:FreeBSD may be dying but it's fast! (Score:5, Informative)
Well, the drop-offs of FreeBSD in a couple of the graphs can be explained by him not reading [freebsd.org] the docs [freebsd.org].
Re:FreeBSD may be dying but it's fast! (Score:2)
1) FreeBSD developers feel the need to drop incoming socket connections in order to preserve performance for the rest of the system.
- and/or -
2) Linux 2.6 scales better.
Why would this option start dropping at 4,000 connections *by default* instead of going the distance by default and allowing the sysadmin to throttle back if necessary?
Re:FreeBSD may be dying but it's fast! (Score:2)
Re: (Score:2)
Improving the graphs (Score:3, Interesting)
Also watch out as you read the graphs - just to keep you on your toes, he changes the colors in every one!
The author should use a graphing technique Edward Tufte calls "small multiples". In that you lay out a series of thumbmails of the each graph series. The eye can quickly scan down the thumbmails and get a rough feeling for how each series compares.
This would avoid the problem where graphs overlay each other and with the inconsistency between graphs in the plotting conventions.
Re:FreeBSD may be dying but it's fast! (Score:2)
If you can't figure out how to tune the OS, you sure as hell should not be benchmarking it. That line makes this whole "benchmark" worthless to me.
-sirket
Re:FreeBSD may be dying but it's fast! (Score:2)
-sirket
Re:FreeBSD may be dying but it's fast! (Score:2)
Re:FreeBSD may be dying but it's fast! (Score:2)
The problem here is not that the box wasn't tuned for performance, I can respect that. The real problem is that the box didn't work. He hit limits that prevented him from doing a real benchmark.
So, contribute instead of criticizing, and send him an email explaining how to better tune FreeBSD.
It's in the man page. I'm sorry but he should RTFM.
-sirket
Re:FreeBSD may be dying but it's fast! (Score:2)
With your superior knowledge you should run your own, improved benchmarks and post the results.
Mac OSX panther is Free BSD 5 (Score:2)
other web services running out of the box
Apache 1.3 and 2.0
Tomcat 4.1 and Axis 1.1
JBoss 3.2
MySQL 4
JBoss Deployment Tools
WebObjects on JBoss
Perl 5.8 and PHP 4.3
Ldap, samba
Can I smoke some? (Mac OSX panther is FreeBSD 5) (Score:2)
You read too much marketing literature and misinterpret it. To shatter some illusions, Cheer detergent will not make your relationships better. Drinking lots of beer will not attract 5'10", 100lb models with large breasts and bikinis.
Further:
NeXTStep was a Mach kernel with BSD4.3 userland tools running a proprietary windowing system that uses Display PostScript (making their printer cheap) coded with Objective C.
Mac OS 10.0-10.2 is a Mach Kernel with a user
Re:FreeBSD may be dying but it's fast! (Score:2, Informative)
Maybe you wouldn't run either of them right now, but a few months down the line, these will be what everyone is using.
no! (Score:2)
Re:no! (Score:2)
Got Mirror? (Score:2, Funny)
Apparently the webserver with the results didn't scale so well. It's /.ed already.
Re:Got Mirror? (Score:2)
Hopefully, his next submission will be an estimate of the CPU and bandwidth required to handle a slashdotting, so that the rest of us don't get caught so flat-foted.
Open Source Software clearly superior (Score:5, Interesting)
The article is very fair and very well thought out. It is almost like reading a research paper. It looks like he is inviting criticism, insight, and corrections, rather than trying to force the experiments into a pre-determined outcome.
Such a thing is not possible in the proprietary world. Any study done on proprietary software has to be tainted with opinion and the experiments must be skewed. Read the EULAs. Some EULAs won't even allow you to publish the results of such tests.
Open Source software, of the BSD kind and the GPL kind, has totally changed the way we think about and work with software. One day, we will be able to scientifically determine what software we need to suit our needs. We will know ahead of time exactly what limits and what capabilities each piece of software has. IT managers will be able to sort through real facts based on real research, rather than a bunch of shallow articles and biased reports. Software will survive on its merits alone.
The whole industry is going to benefit by this, in a large, large way. The question one day will no longer be "Microsoft or Linux?" but "Which Open Source software should we use, and why?"
Re:Open Source Software clearly superior (Score:2)
Re:Open Source Software clearly superior (Score:2)
Re:Open Source Software clearly superior (Score:2)
Re:Open Source Software clearly superior (Score:3, Insightful)
"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.
Re:Open Source Software clearly superior (Score:3, Interesting)
In the context, FOSS is superior to closed-source software whose EULA forbids the publishing of benchmarks.
For instance, in this case the published benchmarks show a number of tasks that OpenBSD is very poorly-suited for. Last guy *I* knew who tried to publish similar benchmarks about Oracle compared to MS SQL Server got cease-and-desisted by the Oracle folk.
Cappice?
Re:Open Source Software clearly superior (Score:2)
"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.
It's implied that Open Source is superior to Closed Source. The author was expecting that his audience was at least familier with the topic at hand, and was not burdening us with needless repetition about the curent landscape of software development.
Slashdot commentors: Don't become hostile. (Score:2)
Slashdot commentors: Please realize that many people who visit Slashdot are from countries where English is not the native language. It is VERY likely that they won't understand a subtle joke. Don't become hostile because someone doesn't understand. Just explain.
Re:Slashdot commentors: Don't become hostile. (Score:2, Funny)
Most Americans can't understand a subtle joke either.
Though I suppose you could argue that most Americans don't speak English.
Hostility is bad manners... (Score:2)
Re:Open Source Software clearly superior (Score:2, Insightful)
Don't miss to notice the recursion... (Score:3, Interesting)
"Scalable Network Programming
Or: The Quest For A Good Web Server (That Survives Slashdot)"
What a coincidence!
By the way, fnord web server [www.fefe.de] has at least once survived one slashdotting-event. 4 seconds of googleing result in this comment [slashdot.org] which should have let to a stream of visitors.
I hope fefe will publish the numbers of visitors and the behavior of its web server as soon as possible.
Theo is going to be pissed.... (Score:5, Funny)
Re:Theo is going to be pissed.... (Score:2)
If you ask me, and I'm going to tell you even if you don't, software should be developed for the platforms that people are actually using, and not for platforms that are long-dead or clearly terminally ill.
A couple of years ago I was given a Quadra 700 for free and I decided to see if I could turn it into a real computer by putting som
Re:Theo is going to be pissed.... (Score:3, Insightful)
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
Re:Theo is going to be pissed.... (Score:2, Interesting)
Many people don't have the luxury of grabbing a P4 or Opteron as there whims demand. Supporting older hardware also does not slow an OS down. If done properly, it forces you to think about how to do things RIGHT so you don't eat unnecessary cpu cycles.
Re:Theo is going to be pissed.... (Score:2)
It's not just for speed. Multiple architechtures can break bad code early.
Slashdot's scalability (Score:2)
I'm probably going to regret this... (Score:3, Informative)
Re:I'm probably going to regret this... (Score:2)
Well (Score:2)
Very interesting comment about GNU libc (Score:3, Insightful)
"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).
Re:Very interesting comment about GNU libc (Score:2)
So, did his Hello World support multibyte character sets, or, in fact, any sort of internationalization?
Sure libc is hugely bloated. But most programs link to it dynamically so it will be loaded once. Imagine the bloat if libc was ultraslim and each and every application implemented the bloat on their
Re:Very interesting comment about GNU libc (Score:3, Insightful)
The problem is overhead code that needs to be ran at startup and static variables in the libraries which require fixups in the loader.
Re:Very interesting comment about GNU libc (Score:2)
There was a good 2 months there where all DNS operations didn't work with dynamically linked libc's, and several distributions didn't work at all, so they decided to switch it back and break stuff even more. And that's just one example.
libc is a huge pile of mess and bloat and bugs, and is by any measure the weak link in the Linux universe. But we seem
Re:Very interesting comment about GNU libc (Score:2)
I recall trying EGCS (the former GCC fork) on my Amiga as an alternative to DCC and other C compilers. Using DCC, you could almost literally tell which byte served what function; DCC produced very small binaries, and m68k assembly is a very easy read (really! it's like reading a good book).
EGCS, OTOH, produced binaries that were immense. I recall trying to figure out the startup procedure, that is, the stuff
Re:Very interesting comment about GNU libc (Score:2)
Re:Very interesting comment about GNU libc (Score:2)
You'll have to write Free Software (as per the GPL) using diet libc, while you can develop whatever you want (within LGPL terms) with glibc.
FYI: I'm not the poster you responded to, and I've checked what I just wrote.
My benchmarks. (Score:3, Funny)
I took three computers out in my rowboat, a Windows system, a Linux system, and a BSD system, and threw them overboard to see what would happen.
The Windows system sank like a rock, the Linux system bobbed back to the surface, and the BSD system rose to the sky, to be greated by a chorus of angels.
Then I woke up, so I don't know what the angels were singing.
Re:My benchmarks. (Score:2)
Would it have been something from this [openbsd.org] selection?
Re:My benchmarks. (Score:2)
Wrong FreeBSD version used (Score:2, Informative)
So this guy grabs a beta version of a new tree in freebsd, and runs it against stable netbsd, openbsd and linux? Eh? Did he even compile his own kernel and take out all the debugging information in the released kernel? Did he turn of
Re:Wrong FreeBSD version used (Score:2)
Then do you your own goddamn benchmark, coward. He even posted his code to make it easy for you.
Comparing epoll() to kqueue() really isn't fair (Score:2)
The SIGIO comparison is somewhat fair, but keep in mind that implementing a program with SIGIO requires multiplexing I/O asynchronously, which radically alters program design. Linux 2.4 lacks a synchronous
Re:Comparing epoll() to kqueue() really isn't fair (Score:2)
What IPv6 "sabotage" did OpenBSD do? (Score:2)
Sabotage? Someone able to bring me up to speed on this?
As for the installation routine, it is something out of the dark ages, consid
Security (Score:4, Informative)
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
OpenBSD 3.4 was a real stinker in these tests. The installation routine sucks, the disk performance sucks, the kernel was unstable, and in the network scalability department it was even outperformed by it's father, NetBSD. OpenBSD also gets points deducted for the sabotage they did to their IPv6 stack. If you are using OpenBSD, you should move away now.
Sabotage? Someone able to bring me up to speed on this?
Well, seems like someone just read the last paragraph of TFA. Just read the sec
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
OpenBSD also caused a lot of grief on the IPv6 front. The OpenBSD guys intentionally broke their IPv6 stack to not allow IPv4 connections to and from IPv6 sockets using the IPv4 mapped addresses that the IPv6 standard defines for thus purpose. I find this behaviour of pissing on internet standards despicable and unworthy of free operating systems.
Re:What IPv6 "sabotage" did OpenBSD do? (Score:5, Informative)
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
Nowhere in the commentary is any negative conclusion drawn from the fact that the FreeBSD fork graph stops early.
There are several reasons why I didn't pursue this. First of all, I was running out of time, I finished the benchmarks the night before driving to the conference. Secondly, I didn't fly in Linus to hand tune my Linux setup as well. Third, FreeBSD does not look bad because of this, on the contrary. The graph looks O(1), it just stops early. It is true that this test sho
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
You even said that you weren't sure what was going on with the FreeBSD tests, but didn't think it too important, so what are folks complaining about?
Madness I tell you! Madness!
When you get the time, I hope you do more of this bench testin
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
I know this is more work, but perhaps a more fair test might be to compare default installs with each other and then compare more highly tuned installs. This might give a sense of what novices and experts can get out of both systems. I did like the benchmarks, but there may be some (unintentional statistical) bias due to your fam
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
If you are using OpenBSD, you should move away now.
Right, because those of use using Open are doing so out of total performance. Lets do a comparison of the security of these systems and see who wins that one. I think most Open users (incidently I use it as my workstation and my server here) would use Net, Free or Linux in an all out performance situation. For security and comfort, I'll keep my Open machine thanks.
Using, development code and untuned boxes to d
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
Ok, let's start with resilience. Quoting from fork benchmark: "OpenBSD does not scale at all, and even panics under high load."
Re:What IPv6 "sabotage" did OpenBSD do? (Score:2)
Openssl problem? Same.
Oh you mean just the o/s alone? Well panics under high load = bad. And if it's just O/S alone, then OpenBSD is overrated WRT security. Even a fully patched win95 is pretty secure if you don't run MS client - just use plain tcp/ip, and you don't run any other services.
An extended troll against OpenBSD (Score:2, Flamebait)
Using an unstable development version and then complaing about instability, peppering the results with emotive commentary and clueless rhetoric. (btw the 1024-cylinder boot restriction he complains so much about has been fixed for a while) Especially funny was this idiotic statement:
FreeBSD-5!? (Score:3, Insightful)
He had the time to test the stable and devel versions of the linux kernel, but only the new technology version of freebsd?
Hmm Scaling . . (Score:2)
did he disable all the debugging in FreeBSD ? (Score:2)
NOTE TO PEOPLE WHO THINK THAT 5.0-CURRENT IS SLOW:
FreeBSD 5.0-CURRENT has many debugging features turned on, in
both the kernel and userland. These features attempt to detect
incorrect use of system primitives, and encourage loud failure
through extra sanity checking and fail stop semantics. They
also substantially impact system performance. If you want to
do performance measurement, benchmarking, and optimization,
you'll want to turn them off. This includes various WITNESS-
related ker
Re:did he disable all the debugging in FreeBSD ? (Score:2)
He was using 5.1 and then 5.1-current (closer to 5.2 really).
I wouldn't put up a web server (let alone a heavy use one) without tuning it some (many things a web server needs are either unnecessary or unwanted for a box dealing with users or NFS, etc); a new kernel and removing some limits and adding some is warranted.
That said, Linux 2.6 is experimental, so is FreeBSD 5.x
I'd be curious to see how it stands up on duplicate Sun SPARC machines, or on Alphae, etc. but time limits s
O(1) on all (Score:2)
Nothing new here (Score:5, Insightful)
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.
Re:Nothing new here (Score:2)
Ahem... Sorta. But even you go on to say you like PF better and that's why you use *BSD for stuff.
I like FreeBSD for its basic simple and small install and generally the system is just simple, tight,
not entirely fair on OpenBSD (Score:2)
Your scientific method isn't one, and these results are invalid as a result.
You took in-progress development release of OpenBSD compared to stable releases of other operating systems (even your NetBSD was a RELEASE rather than a CURRENT). CURRENT is always going to be an in progress development and not entirely stable.
Re:not entirely fair on OpenBSD (Score:2)
are you an Amiga fan, too?
Re:not entirely fair on OpenBSD (Score:2)
Forgive my ignorance then; so 2.6 is not stable; that even further supports my assertion that the tests are between non-stable versions: it may just happen that 2.6 linux is not only good, but also more stable than the BSD's.
I still think the results here are useful, in that they provide some general guidelines, but I would be very wary about some of these exceptional problems the tester ran into, because those problems (e.g. the mmap under OpenBSD) could easily be attributed to instability due to current
Re:not entirely fair on OpenBSD (Score:2)
If there is something wrong with the settings, then the project should reset the defaults to sane values, rerun the benchmarks (all the programs are there) and ask the tester to confirm and/or publish them.
Apple marketing? (Score:2)
invalid results, makes Linux and OSS look bad (Score:2)
It's this type of information that does OSS a disservice - making it look amateur and unprofessional.
You used an pseudo-scientific method, i.e. your graphs are nice, your data points are nice, but you forgot the fundamentals of testing: you didn't clarify the exact projects you were testing (you should have asked the project leads for advice on which versions of the projects to test against), nor did you asked for feedback and determine the reasons for the anomalous conditions (e.g. the FreeBSD maxprocs co
You are right, but that was not the point. (Score:2)
But I do have these benchmark programs, and I was hoping to spark enough interest in doing some real comparative benchmarks by posting the results here. The tools are now there, and they do use the platform specific API hacks to get the best performance on each o
Re:invalid results, makes Linux and OSS look bad (Score:2)
The data points looked biased enough that I wouldn't trust his results without being able to review his code.
Re:invalid results, makes Linux and OSS look bad (Score:2)
Oh sure. All those stupid latency measurements. Next time he should chart framerates in Quake, right?
open BSD, slowliness (Score:2, Interesting)
ALthought not beeing an expert in bsd nor in linux, maybe i'm rong, but isn't OpenBSD made to be secure, and not the fastest operatin system ( additionally, comparing oragnges to apples, by testing release/current/stable, wasn't the best way of comparing those OSes) ????
By implementing a few feature in the OpenBSD stack and Kernell, I guess that
I seriously question the author's objectivity (Score:2, Interesting)
Real point: they show improvement (Score:3, Interesting)
It is encouraging to see that all of these developers are competing with the real opponent, which is not each other or even Microsoft, but the slashdot effect. After all, the goal should not be simply to be better than the others, but to be sufficient for the user's purpose, which is not hampered but rather assisted by sharing all of your tricks. It can sometimes seem like there are endless wars between Linux and BSD, but, behind the scenes, the sides actually share information. Never as much as they'd like, but always more than people think.
He likes to play rough... (Score:2)
Talk about taking the kids gloves off!
-Adam
Solaris... (Score:2)
Graphing 101 (Score:2)
1)
I (like about 20% of the male population) am partially color deficient.
The graphs' colors where very hard for me to distinguish in the ledgend; what with the 1 pixel wide font and sample line/symbols. The colors chosen were all of about the same intensity/saturation also, so if you are color blind the entire graph would look all about the same level of gray. This problem is further compounded by all the graphs having di
Re:Best benchmark I've ever seen (Score:2)
The reviewer does sound a bit biased towards Linux. In the same way Bill sounds a bit biased towards Mic
Re:Why the hell fbsd 5.1? (Score:5, Informative)
I don't think using 5.1-CURRENT is a problem, but the way the benchmark results were layed out was begging for a flamewar. As I explained earlier [slashdot.org] the results are not as bad as either linux fanatics, or FreeBSD fanatics would have it. It would have been simple to avoid such flamewar (or am I too optimistic?) by doing two things:
Explain the status of both (linux 2.6 and FreeBSD 5.1) development branches - as I have outlined in my earlier post. If you take into consideration what I have written above, than you would have realized that results for FreeBSD are not that bad, in fact, they are excellent.
Include results for 4.8 - or 4.9 rc3 (but I would be happier with just the production release) in the test, just as 2.4 was included on the linux side.
To sum up: I believe that these benchmarks confirms what I thought for a long time: FBSD 5.1 development is on par with Linux 2.6. Perhaps this was the reason for his last "Or may be not" remark.
Re:Why the hell fbsd 5.1? (Score:2)
Re:Why the hell fbsd 5.1? (Score:2)
All in all, you can read that, as far as performance and stability goes, the article says that the current Lin
Re:Proof that people who do benchmarking are idoit (Score:2)
Oh, wait, but we are comparing those dissimilar products when they're all attempting to do the same thing. Why else would car makers boast about engine horsepower, acceleration, traction and br
Re:Win-win situation for Linux (Score:2)
Loose: Linux can't obviously not contain any SCO IP, because it's not business ready. SCO's lawsuit will collapse.
Any chance of saying that in english? The triple negative is confusing and the second sentence doesn't seem to flow from any reasonabler interpretation of the first. And "loose" is an adjective meaning approximately the "opposite of tight".
If you're mensa, I'm donald duck.
Re:What about the installation method? (Score:2)
But since none of the graphs actually measures disk I/O, that does not matter in the least. You did read the web page before commenting on it, didn't you?
I did a benchmark about HTTP throughput that did not make it into the PDF or the web page: I downloaded one large ISO over Fast Ethernet. To make sure the test was fair, I mounted the same Linux ext2 file system on all the BSDs read-only. My disk has ~25 MB/sec throughput, so any OS should be able to satur
Re:First graph (Score:2)
I corrected the web page.