Re: Unices are created equal, but ...

Linus Torvalds (torvalds@cs.helsinki.fi)
Mon, 15 Apr 1996 09:09:58 +0300 (EET DST)


On Sun, 14 Apr 1996, JULIAN Elischer wrote:
>
> Ok, here is my attempt at the missing information....

This is probably approaching being closer, but it's not really as
clear-cut as even this.

Personally, I _want_ linux to be faster on everything, but when it comes
to real life, I'd say that _any_ of the Free UNIXen are "fast enough".
There is always going to be some differences in different areas, but with
both groups being pretty performance-minded I don't really think we'll
ever have any really noticeable differences in any "normal" circumstances.

> I would expect the following to be true between Linix 1.3.x and FreeBSD 2.0.5.
> category 1:--Linux faster in:
> context switch, including some system calls.
> possibly some program startup.
> possibly pipe code.
> possibly FP emulation.
> possibly FP exception handling.
> Any test that does a lot of filesystem meta-data manipulation.
> e.g. file creation and deletion.

I can't really say much about it: I can't even claim to have benchmarked
any *BSD machine. All the things you mention are "good" under linux,
though, so I'd suspect that linux is at least on par with BSD in any of
the above and may be faster.

On the other hand, Dyson tells me that the FreeBSD team has been
optimizing lots of those things too, and I wouldn't be surprised if they
are more or less at the same level as linux is..

Again, I don't think the speed makes a huge difference (a 10% difference
looks huge in benchmarks, but has little meaning in real life unless
either is 10% faster at _everything_)

> category 2:--FreeBSD 2.0.5 faster in:
> Anything to do with networking

No longer true. These days it's "some things to do with networking", and
while I suspect that BSD may have the edge here still, these days it's
really the _edge_, not the whole blade ;-)

> Anything using a raw tape or disk device.

This may well be true. I'll be the first to admit that I don't really
care for "raw devices". The only time I ever use the raw device is when
fsck runs, and I couldn't care less about performance there (well, I
could, but you get the idea).

Tapes I have no idea about. You may or may not be right.

> Any benchmark that loaded the system very heavily,
> especially if it produced swapping.

The differences shouldn't be that large any more. The asynchronous
swapping code and the swap deamon in newer linux kernels help performance
under load. Again, I'm more inclined to think that one system may be
better on some hardware, while the other might be better at something
else.

> Any benchmark that tested high-speed large sustained
> IO to files.

This has actually changed, and I suspect that's why Gerard did the
benchmark in the first place. He's been working on that part of the code,
and we're doing very well.

Unlike raw device accesses, I consider filesystem access speed very
important, and I've mostly concentrated on getting good performance
through good caching. Linux traditionally hasn't been as good in things
where caches don't help (ie the cases you mention above), but that has
improved a lot lately. Maybe somebody has access to FreeBSD-current and
Linux-current on the same machine and can compare bonnie?

> category 3:--Linux and FreeBSD 2.0.5 about equivalent in:
> Anything that relies mostly on plain CPU
> with no or little OS involvement.
> (as both use the same cpu.)

I'd like to put a lot more here. In practice I don't think the
differences are so large.

HOWEVER, despite the fact that I don't think it matters in real life, I'm
all for people doing benchmarks, and crying out when one or the other is
slower in something. Not because I think it makes much of a difference for
normal users, but because it's good for development. It's a great way to
motivate people to do better (show that the competition can do better at
something, and you force us to try to improve ourselves).

I think _that_ is why benchmarks are important, not so much for testing
which one is more "worthy"..

> > If you are a FreeBSD-current user and if you have about the same
> > configuration as mine, can you run the old BYTE benchmark
> > and send to me your results?
>
> I don't think it would be useful unless we had EXACTLY the same hardware..
> I have seen small differences make up to 50% difference..

Indeed. Even on the same machine the placement of the partitions can make
a noticeable difference for disk tests, so benchmarking is not a trivial
thing.. It might still be interesting to see some kind of benchmarking
done, just for "some data" as opposed to "THE data".

If somebody wants to do benchmarking,I'd suggest using at least
- lmbench (nice microbenchmark)
- bonnie (reasonable disk performance benchmark)
- webstone (or something similar. But use "apache" as the server, not
some braindead horror like NCSA).
- ???

(the three mentioned should cover different areas, all very reasonable,
but have I missed some important area?)

Linus