Hi, I've sent a similar message to netbsd-users@ list, but didn't get any responses, maybe somebody on tech-kern@ knows the answer?
I've been looking at the following paper: "UBC: An Efficient Unified I/O and Memory Caching Subsystem for NetBSD" However I'm not clear about what strategy NetBSD uses for page replacements. For example, a web server does mainly read operations from filesystem, so the kernel will eventually fill up buffer cache. When the buffer cache is full and there is no free RAM, the kernel would need to replace some of the pages. How does it decide what pages to replace? Does it look at the usage pattern or the underlying file size? Does it try to steal pages from a single large (say 2GB) file, rather than stealing them from many small files?