public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* sendfile() with 100 simultaneous 100MB files
@ 2006-01-20 21:53 Jon Smirl
  2006-01-21  2:22 ` Matti Aarnio
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Jon Smirl @ 2006-01-20 21:53 UTC (permalink / raw)
  To: lkml

I was reading this blog post about the lighttpd web server.
http://blog.lighttpd.net/articles/2005/11/11/optimizing-lighty-for-high-concurrent-large-file-downloads
It describes problems they are having downloading 100 simultaneous 100MB files.

In this post they complain about sendfile() getting into seek storms and
ending up in 72% IO wait. As a result they built a user space
mechanism to work around the problems.

I tried looking at how the kernel implements sendfile(), I have
minimal understanding of how the fs code works but it looks to me like
sendfile() is working a page at a time. I was looking for code that
does something like this...

1) Compute an adaptive window size and read ahead the appropriate
number of pages.  A larger window would minimize disk seeks.

2) Something along the lines of as soon as a page is sent age the page
down in to the middle of page ages. That would allow for files that
are repeatedly sent, but also reduce thrashing from files that are not
sent frequently and shouldn't stay in the page cache.

Any other ideas why sendfile() would get into a seek storm?

--
Jon Smirl
jonsmirl@gmail.com

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2006-01-24 16:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-20 21:53 sendfile() with 100 simultaneous 100MB files Jon Smirl
2006-01-21  2:22 ` Matti Aarnio
2006-01-21  3:43   ` Jon Smirl
2006-01-22  3:46     ` Benjamin LaHaise
2006-01-21  3:52 ` Phillip Susi
2006-01-22 14:24 ` Jim Nance
2006-01-22 17:31   ` Jon Smirl
2006-01-23 15:22     ` Jon Smirl
2006-01-24 16:30       ` Jon Smirl
2006-01-23 16:50   ` jerome lacoste

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox