From: Jens Axboe <jens.axboe@oracle.com>
To: Brent Baccala <cosine@freesoft.org>
Cc: "Chen, Kenneth W" <kenneth.w.chen@intel.com>,
linux-kernel@vger.kernel.org
Subject: Re: async I/O seems to be blocking on 2.6.15
Date: Tue, 7 Nov 2006 08:29:07 +0100 [thread overview]
Message-ID: <20061107072906.GO19471@kernel.dk> (raw)
In-Reply-To: <Pine.LNX.4.64.0611061903220.27775@debian.freesoft.org>
On Mon, Nov 06 2006, Brent Baccala wrote:
> On Mon, 6 Nov 2006, Chen, Kenneth W wrote:
>
> >I've tried that myself too and see similar result. One thing to note is
> >that I/O being submitted are pretty big at 1MB, so the vector list inside
> >bio is going to be pretty long and it will take a while to construct that.
> >Drop the size for each I/O to something like 4KB will significantly reduce
> >the time. I haven't done the measurement whether the time to submit I/O
> >grows linearly with respect to I/O size. Most likely it will. If it is
> >not, then we might have a scaling problem (though I don't believe we have
> >this problem).
> >
> >- Ken
> >
> >
>
> I'm basically an end user here (as far as the kernel is concerned), so
> let me ask the basic "dumb user" question here:
>
> How should I do my async I/O if I just want to read or write
> sequentially through a file, using O_DIRECT, and letting the CPU get
> some work done in the meantime? What about more random access?
For sequential io, you'll pretty quickly hit the transfer size sweet
spot where growing the io larger wont yield any benefits. In this case
you don't want a huge queue depth, 100 ios is an insane amount for
sequential io. If you have a properly sized io unit and a depth of 4 or
so, I doubt you'll see any improvement beyond that on most hardware.
For random io, you want a bigger queue depth. If the hardware can do
queueing, you want to make sure that you can fill that queue. 100 ios is
still a lot in this case, though.
> I've already concluded that I should try to keep my read and write
> files on seperate disks and hopefully on seperate controllers, but I
> still seem to be fighting this thing to keep it from blocking.
Shrink your queue size and/or io size :-)
--
Jens Axboe
next prev parent reply other threads:[~2006-11-07 7:27 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-07 0:03 async I/O seems to be blocking on 2.6.15 Brent Baccala
2006-11-07 0:24 ` Chen, Kenneth W
2006-11-07 7:29 ` Jens Axboe [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-11-03 8:23 Brent Baccala
2006-11-03 12:20 ` Jens Axboe
2006-11-03 15:58 ` Brent Baccala
2006-11-03 16:02 ` Jens Axboe
2006-11-03 17:09 ` Brent Baccala
2006-11-03 17:30 ` Brent Baccala
2006-11-05 12:15 ` Jens Axboe
2006-11-06 6:42 ` Brent Baccala
2006-11-06 10:43 ` Jens Axboe
2006-11-06 15:52 ` Phillip Susi
2006-11-06 16:02 ` Jens Axboe
2006-11-06 17:04 ` Phillip Susi
2006-11-06 17:10 ` Jens Axboe
2006-11-06 21:22 ` Chen, Kenneth W
2006-11-07 7:26 ` Jens Axboe
2006-11-07 21:02 ` Bill Davidsen
2006-11-10 9:24 ` Jens Axboe
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=20061107072906.GO19471@kernel.dk \
--to=jens.axboe@oracle.com \
--cc=cosine@freesoft.org \
--cc=kenneth.w.chen@intel.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