Re: mmap() versus read()

Dean Gaudet (dgaudet-list-linux-kernel@arctic.org)
Sun, 8 Mar 1998 18:08:20 -0800 (PST)


On Mon, 9 Mar 1998, Richard Gooch wrote:

> The syscall overhead is peanuts. It's more like 10 000 times faster
> than a disc seek. The syscall overhead is simply not worth
> considering.

It's 10k times faster sure if you *have to go to disk*. What happens when
I build a 512Mb web server with only 256Mb of active content? Suddenly
I'm paying for per-request syscalls I don't need. I know, it's all about
trade-offs :)

I could show you a beautiful trace of apache 1.3 hacked up a bit in which
it served 75 requests in something like 20 system calls. This means there
are no per-request syscalls required currently... There's a few
connection setup and teardown calls, and the rest were writev()s or
write()s -- the client was http/1.1 pipelining, so I'm "cheating"... but
pipelining clients are here already and 6 months to a year from now they
should be common.

The reason I started this thread is that I've got a 128Mb server with
about 150Mb of active data... so on it yup extra syscalls would be no
problem at all. As an application programmer though, I'm not sure how I
can discern the two cases efficiently.

Incidentally, benchmarks, and most high volume sites I've dealt with fall
into the first category -- working sets are smaller than RAM. I'd crank
up the memory on my 128Mb box... except it's a Tyan Tomcat III and it's
snobbish about the RAM it will talk with.

Dean

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu