Hi Hannah,
On 2006.02.20, at 11:21 PM, Hannah Schroeter wrote:
Just one "effect" you have to care for, on Linux (which *has* a
unified
VM/buffer cache system) we mkdir many directories (e.g. hashed buckets
like squid uses them, just a few more, 256 * 256, to be precise).
It was
quite long (at least into the Linux 2.4 series) that that worked like
this: mkdir completed quite fast until the memory was filled with
dirty
blocks, then the box *hung* completely until all the dirty blocks were
actually written to disk. This isn't acceptable. And it's not
acceptable
for something like grep foo (a list of names of long files) pages out
every program.
The Linux UBC doesn't seem to perform very well either. Assuming I
tested this correctly, I wrote a simple script to read a large file
(larger than half available RAM but less than total available), over
and over again (hundreds of times) just to /dev/null. NetBSD and
FreeBSD read the file from disk once, as noted from the activity
light and then flew through the remaining re-reads super fast from
RAM (FreeBSD being the faster of the two). I expected this behaviour
from Linux, but instead Linux constantly read the file from disk
_extremely_ slowly (found on various Linux distros). Much much slower
than OpenBSD which also read the file from disk each time.
Is OpenBSD way too different now from NetBSD to port their UBC code?
Shane J Pearson shanejp netspace net au