Benchmarks of Debian GNU/kFreeBSD vs. GNU/Linux
An anonymous reader writes "The Debian Squeeze release is going to be accompanied by a first-rate kFreeBSD port and now early benchmarks of this port have started coming out using daily install images. The Debian GNU/kFreeBSD project is marrying the FreeBSD kernel with a GNU userland and glibc while making most of the Debian repository packages available for kfreebsd-i386 and kfreebsd-amd64. The first Debian GNU/kFreeBSD benchmarks compare the performance of it to Debian GNU/Linux with the 2.6.30 kernel while the rest of the packages are the same. Results are shown for both i386 and x86_64 flavors. Debian GNU/kFreeBSD may be running well, but it has a lot of catching up to do in terms of speed against Linux."
From the Linux only perspective, I am still running everything (servers, desktop, laptop) on Linux 32 bits even on 64 bits machine because I figured that running 64 bits wasn't really worth yet.
Now, I am really surprised to see that Debian Linux 32 bits is actually faster than Debian Linux 64 bits in many tests !
Everything I write is lies, read between the lines.
Debian GNU/kFreeBSD may be running well, but it has a lot of catching up to do in terms of speed against Linux."
Yep, because we ALL KNOW speed is EVERYTHING when running a computer.
groan.
Trolling is a art,
We can't start a holy war now! My armor is at the cleaners.
Cue nerd rage
Sheldon
I am TheRaven on Soylent News
While they're really the only group that does a lot of linux benchmarking, I'd put a *large* grain of salt in their results.
They have no problem blindly accepting something like this without investigating why it is so much faster and seeing if there's a problem with their testing.
Your hair look like poop, Bob! - Wanker.
Didn't Debian switch to eglibc because Drepper was being an asshole?
.....fuck that! Tab got closed, comments get whinge added, going elsewhere.
I don't use BSD, I just wanted to see if the "BSD is dying" troll still posted. It has been years, eh?
It does also seem to me that the FreeBSDk thing is meant to make certain features available to developers, maybe be more reliable, and "faster, faster" isn't being sold as part of the bill of goods. Yet, the talk returns to speed, speed, speed.
But what do I know... I work as a nurse. Although... I DO love a fast computer.
As a long time debian user who also has to work with freebsd sometimes I don't get it. Why use freebsd with GNU apps, when you can just run freebsd? And why freebsd and not lets say, openbsd or netbsd? What is the advantage in using the freebsd-kernel instead of the linux-kernel? I have access to every linux app when I use freebsd and to be honest, if I knew my way around bsd as I do under debian I would probably switch. But I am missing the improvement for Debian here. Can someone please clear this up for me a bit?
This benchmark is useless without ZFS.
What about a performance comparison with original FreeBSD?
The Tao of math: The numbers you can count are not the real numbers.
So can I run Flash-enabled browser on this port?
glibc is a much more complex libc than the one FreeBSD uses. FreeBSD doesn't use libc as the "glue layer" nearly as much as Linux, so the extra overhead of glibc is wasted.
The other day, I was installing an old FreeBSD system for compatibility with some stuff I had. I figure it's like installing an old Linux, right?
Wrong. When I install an old Linux, I can install all the old software. The *.rpm or *.deb files exist. FreeBSD doesn't work like that. It has ports. If your system is old, you're screwed. The ports system is only 100% available for the latest release. For older releases, there is a sort of weak idea that maybe it kind of sort of ought to be maintained when somebody bothers, but probably it'll just FAIL.
Really, that's crap. An OS shouldn't become unavailable as it ages. I might need it!
Slackware from 1994 still works as well as it did back then, 16 years ago. What's FreeBSD's problem?
Why? Because every 64-Bit CPU I've ever used always had more than twice as much L2 cache as 32-bit Systems. In other words, the hardware manufacturers/designers have already accounted for that.
Over-the-top Response Guy! Giving "Over-the-Top Responses" since 1970.
The unpolished GNU userland and GlibC (no offense, just compared to BSD's userland/libc or Solaris, they just tend to be weirder imo) combined with FreeBSD's stable but mostly unsupported kernel (Oh? You wanted ALSA? Sorry. You wanted Linux kernel modules? Oh, sorry. You need Linux hardware support? Oh sorry).
So I guess you get the worst of both worlds? Awesome.
And it's slow.
Great job guys :D
Why even swap the kernel out? The Linux kernel supports more hardware and has better stock performance then the FreeBSD kernel. In fact most friends I have that use FreeBSD are snotty to Linux users anyway. I say give them there OS and it's sorry performance (at least I've never seen anything comparable) and I'll stick with my stage 1 Gentoo which is fast, optimized and ready to go.
Sorry if this offends any FreeBSD user as that's not my point but I've installed it a ton of times to try it out and I'm still waiting for an install that lets me say "Woah" from the get go. Sure you can optimize after the fact but that's not the point, fast out of the box, faster after the tweak! that's what I want and FreeBSD has never given that to me .
If your a FreeBSD user great and if you a Linux user great, but lets not mix the two please!
No, not necessary.
It's not because your CPU is running a 64bits OS that suddenly every data format has to be replaced with one using 64bit integers.
It's not because your CPU is running a 32bits OS that you aren't allowed to manipulate anything bigger 32bits.
The OS bittage has almost no impact on what data format can be used. Only how fast those format will be processed, and how many memory can easily be addressed in a straight-forward way.
A 256 x 256 bitmap, RGBA, with 8bits per channel, will always take the same amount of memory wherever the OS is running 32bits or 64bits code. Only with a 64bits OS it will be much more easy to store more than 3GiB worth of textures.
And even a 32bits OS can manipulate 1024bit data structures like crypto key (only a little bit slower, because the CPU internally won't be able to do 64bit operations).
Also most OSes are LLP64 or LP64, meaning that the default "int" still is 32bits. Thus code recompiled in 64bits will tend to approximately use the same amount of data as original code in 32bits.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
I can see a really good usage case for this.
You're a sysadmin, and you're running Debian almost exclusively. You have a large number of automation scripts that you use to do your job (security updates, auditing, provisioning, general maintenance, etc). All of them are expecting to run on Debian, because all you run is Debian. So you, as a sysadmin, decide you want to use ZFS somewhere.
You have a few options:
1) Run Solaris
2) Run some derivative of BSD (FreeBSD, OpenBSD, NetBSD, etc)
3) Run Debian w/ ZFS in Fuse
4) Run Debian kFreeBSD
Options 1 and 2 will most likely require you to tweak or rewrite a lot of your scripts. I shouldn't need to explain why option 3 is a bad idea. Since you're working with Debian userland, going with option 4 seems like it would be the path of least resistance. Seems pretty useful.
It would also be interesting to see benchmarks of functionality actually provided by the respective kernels. E.g. performance of fork, fork+exec, socket, accept, reads and writes on IPC, multiprocessor/multicore/hyperthreading performance, etc. Past benchmarks have shown that there can be dramatic differences between operating systems especially when large numbers of something (processes, filehandles, CPUs, etc.) are being used simultaneously.
Also, I am missing a description of exactly how they measured. Did they recompile the benchmark suite from scratch on each platform? Which compiler was used, and with which settings? Are they running the same binaries on both? How exactly did they arrive at the presented values? Is each bar the result of a single run, or did they run each benchmark multiple times and account for any variation in observed scores somehow?
As others have already mentioned, it would also be interesting to see how a regular FreeBSD system would fare.
All in all, interesting benchmarks. My conclusion: there isn't that much of a difference between the tested versions of Linux and kFreeBSD in there benchmarks. The difference between 32-bit and 64-bit is usually more pronounced. If you need the highest performance for your application, you'll still have to run your own tests.
Please correct me if I got my facts wrong.
The parent poster mentioned problems with *data* structures, not with code.
And the code it self is less likely to increase. First there isn't a big different in length between x86_64 and stock x86 op codes. The whole x86 family has been using opcodes of varying length since day 1.
There's nothing as dramatic as the differences between ARM native 32bits and Thumb 16bit modes.
Second, in 64bits the number of available registers increases dramatically, as said elsewhere in this thread.
As such, the net result is more compact code (less instructions are lost copying values around between the few registers - and the microcode doesn't have a hard time keeping track of this for its register renaming) and is one of the reason why 64bits code tends to sometimes even run faster as 32bit code on x86 platforms.
The only thing which is going to take more place are the memory pointer tables (they'll be using 48 and 64bits pointers).
But even they won't matter much as - as big as they are - these tables represent only a tiny fraction of all the data going through a CPU and occupy not that much cache-space. And the preferred memory model for 64bit code is flat, to begin with.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
Does FreeBSD boot you into X by default yet? I installed the latest and told it "everything" and booted to a command shell. 'startx' returned an error. What gives?
I want to delete my account but Slashdot doesn't allow it.
in the case of Linux, a 32-bit OS does mean there is a 32-bit limit on general registers (EAX, EBX, ECX, EDX, ESP, EBP, EIP, ESI, EDI).
Well that's still 8regs * 4bytes = 32bytes per task, vs. 16regs * 8bytes = 128bytes per task.
You'll need quite a lot of task switching in order to fill the cache.
And even then, switching tasks is a rather rare event on the scale of other computations (Linux can switch task at 1000Hz when the low-latency desktop option is compiled into the kernel), so it is less dramatic if the switch does force a reload from RAM.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]