NetBSD Focuses On Scalability
An anonymous reader writes "Felix von Leitner recently performed some benchmarks (previous story) for a talk about scalable network programming he held at Linux Kongress 2003. The winners in this scalability lineup were Linux and FreeBSD 5, followed by NetBSD and finally OpenBSD.
What's interesting is that in only two weeks time the NetBSD team made dramatic improvements. Felix performed his benchmarks again and the results are nothing short of astonishing. NetBSD now has better scalability than FreeBSD." Read on for a list of improvements.
the submitter lists these changes:
- socket: previously O(n), now O(1).
- bind: greatly improved, but still O(n). Much less steep, though.
- fork: a modest O(n) for dynamically linked programs, O(1) for statically linked.
- mmap: a bad O(n) before, now O(1) with a small O(n) shadow.
- touch after mmap: a bad strange graph in 1.6.1, a modest O(n) a week ago, now O(1).
- http request latency: previously O(n), now O(1)
This is a very good job from the NetBSD team! I hope to see more benchmarks and more improvement for a great OS like NetBSD."
Colour me cynical, but just maybe the improvements are targeted to produce a better benchmark rather than broader scalability.
Tell me I'm wrong.
Kids today are tyrants. They contradict their parent, gobble their food, and tyrannize their teachers. - Socrates 400 BC
It's some of the best source code I've ever looked at. As far as having consistantly good source code, it whoops Linux. I really tried to get my operating systems class teacher to use it instead of Linux, because of it's clean design. He decided to use QNX instead. WTF~?
Anyway if you've never tried NetBSD, I think you should. At least get it installed and compile a kernel. It's a good learning experience. Plus it's been ported to every fsking hardware platform ever (just about.)
-73, de n1ywb
www.n1ywb.com
I run GNU on my machines. I'm not picky about kernels.
The most beautiful code for the most beautiful OS.
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Actually, it's OpenBSD that doesn't support SMP. FreeBSD and NetBSD both support it rather well.
Common sense is not so common.
What the hell is this supposed to mean? Either you are O(1) or you are O(n) - what is "small O(n) shadow" mean?
www.eFax.com are spammers
The benchmark hardware is a Dell Inspiron 8000 with a 900 MHz Pentium 3 and 256 MB RAM.
SMP should change nothing on this kind of hardware and don't explain why OpenBSD performe poorly.
I'd like to play around more with NetBSD if it can produce results like this. Did the author just install an "off the shelf" version of 1.6.1 or did he have to apply 100 pre-alpha patches from some guy named Joe in order to get this performance?
The O(N) shadow statement is a sufficient statement of O(N) behaviour for the big O pedants. I looked at the graph, and I vote we keep the wording as it was.
O notation is overrated. Sorting is always described as O(N*log N), but for any practical architecture using a radix sort with L1/L2 cache locality, replace log N with the constant factor of 3 or 4. A million cache local buckets can radix sort 10^30 elements in 3 log N time.
Using all of main memory as your bucket store, I'd guess you could sort every proton in the known universe in 8 passes. So what exactly is that log N term trying to tell us?
I can really only warn of using OpenBSD for scalable network servers.
...again, I would advise against using OpenBSD for scalable network servers.
r e_dog_hosting_most_reliable_hosting_company_site_d uring_october.html
Don't use OpenBSD for network servers.
If you are using OpenBSD, you should move away now.
http://news.netcraft.com/archives/2003/11/02/secu
vodka, straight up, thank you!
Give it a couple of weeks.
Since the author actually reads the slashdot comments, I've a little question.
I'm no real kernel hacker, so I could be totally off, but:
Are all OSes located on the same part of the (same) HD? This because linear performance probably scales linear with the cylinder the OS partitions is on.
If for example you are talking about a function:
// stupid useless algorithm
int calc_result(int a, int b)
{
for (ii=0; iia; ii++) b *= b;
}
You might say that it is linear in terms of a.
But a has a fixed range so it is actually constant time.
Big-O notation is nice in theory and nice in practice when you are willing to not be too precise, but if you try and make everything exact it just doesn't make sense on real finite-sized computers.
*yawn*
0 2/secur e_dog_hosting_most_reliable_hosting_company_site_d uring_october.html
Sometimes, its just too easy:
http://news.netcraft.com/archives/2003/11/
Choke on it and die.
...wake me up when I can take NetBSD v1.7 and run it on my VAXstation 3100 with 8MB of memory like I can with v1.5.1
NetBSD is starting (not yet, but close) to become dangerously close to the precipice of being Bloatware(*)
First on my list to replace is GCC which has ballooned in size way way too much for the "features" that have been recently included.
TDz.
(*Bloatware is a TM of Microsoft corp)
This should read as FreeBSD in the FreeBSD section..
>>>
As for NetBSD, I plotted the graphs for 4.9 against the graphs for 5.1-CURRENT. Here are the results:
Or the NetBSD guys looked at all of Ingo Molnar's kernel hacks and incorporated the same logic. 2 weeks to implement all these things is an awfully short period of time, IF YOU ARE DOING THE HEAVY LIFTING OF THE DESIGN. Implementing someone else's algorithm is much easier.
I want to delete my account but Slashdot doesn't allow it.
NetBSD's poor SMP support is why I am running FreeBSD on my dual althon box right now, I'd love to have NetBSD running on it like the rest of my boxes (all of 3 ;), but its useless.
This is the sort of flaming that gives the Coward family a bad name. Read the frequently asked questions for OpenBSD. This is isue 8.18. In any case, why would this issue cause you to swear about the OS? Try it and see what you think. I found it to be very stable. I didn't use it in a situation that would tax its scalaiblity. The world is full of servers that are used at 10% of capacity, but are hit by viruses and other attacks. For these servers, OpenBSD would be great. Besides, there is pretty good cross fertilizaton between the BSDs. If the others can move from O(n) to O(1), I'll bet the OpenBSD folks can do it too. It just may take them a while to do a full security audit of the code.
Think global, act loco
This improvement is the best possible answer to those who moaned that the benchmark was inappropriate, not a fair comparison, etc.
Well done to everyone at NetBSD who helped with the improvements, and well done to Felix for performing the benchmark!
The record is clear on one thing: no operating system has ever come back from the grave. Efforts to resuscitate *BSD are one step away from spiritualists wishing to communicate with the dead. As the situation grows more desperate for the adherents of this doomed OS, the sorrow takes hold. An unremitting gloom hangs like a death shroud over a once hopeful *BSD community. The hope is gone; a mournful nostalgia has settled in. Now is the end time for *BSD.