From: Jon Smirl <jonsmirl@gmail.com>
To: lkml <linux-kernel@vger.kernel.org>
Subject: sendfile() with 100 simultaneous 100MB files
Date: Fri, 20 Jan 2006 16:53:44 -0500 [thread overview]
Message-ID: <9e4733910601201353g36284133xf68c4f6eae1344b4@mail.gmail.com> (raw)
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
next reply other threads:[~2006-01-20 21:53 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-20 21:53 Jon Smirl [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9e4733910601201353g36284133xf68c4f6eae1344b4@mail.gmail.com \
--to=jonsmirl@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®