From: Minchan Kim <minchan@kernel.org>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
Chris Wright <chrisw@sous-sol.org>, Jens Axboe <axboe@kernel.dk>,
Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>
Subject: Re: [PATCH 0/6][RFC] virtio-blk: Change I/O path from request to BIO
Date: Fri, 23 Dec 2011 08:26:42 +0900 [thread overview]
Message-ID: <20111222232642.GA7056@barrios-laptop.redhat.com> (raw)
In-Reply-To: <20111222154506.GC1388@redhat.com>
On Thu, Dec 22, 2011 at 10:45:06AM -0500, Vivek Goyal wrote:
> On Thu, Dec 22, 2011 at 10:05:38AM +0900, Minchan Kim wrote:
>
> [..]
> > > May be using deadline or noop in guest is better to benchmark against
> > > PCI-E based flash.
> >
> > Good suggestion.
> > I tested it by deadline on guest side.
> >
> > The result is not good.
> > Although gap is within noise, Batch BIO's random performance is regressed
> > compared to CFQ.
> >
> > Request Batch BIO
> >
> > (MB/s) stddev (MB/s) stddev
> > w 787.030 31.494 w 748.714 68.490
> > rw 216.044 29.734 rw 216.977 40.635
> > r 771.765 3.327 r 771.107 4.299
> > rr 280.096 25.135 rr 258.067 43.916
> >
> > I did some small test for only Batch BIO with deadline and cfq.
> > to see I/O scheduler's effect.
> > I think result is very strange, deadline :149MB, CFQ : 87M
> > Because Batio BIO patch uses make_request_fn instead of request_rfn.
> > So I think we should not affect by I/O scheduler.(I mean we issue I/O
> > before I/O scheduler handles it)
> >
> > What do you think about it?
> > Do I miss something?
>
> This indeed is very strange. In case of bio based drivers, changing IO
> scheduler on the queue should not change anything.
>
> Trying running blktrace on the vda devie and see if you notice something
> odd.
>
> Also you seem to be reporting contracdicting results for batch bio.
>
> Initially you mention that random IO is regressing with deadline as
> comapred to CFQ. (It dropped from 325.976 MB/s to 258.067 MB/s).
>
> In this second test you are reporting that CFQ performs badly as
> compared to deadline. (149MB/s vs 87MB/s).
First test is with 64 thread with 512M and second test is only 1 thread with 128M
for finishing quick.
I think so result is very stange.
This is data on test of deadline.
In summary, data is very fluctuated.
Sometime it's very stable but sometime data is very fluctuated like this.
I don't know it's aio-stress problem or fusion I/O stuff problem
1)
[root@RHEL-6 ~]# ./aio-stress -c 1 -t 1 -s 128 -r 8 -O -o 3 -d 512 /dev/vda
num_thread 1
adding stage random read
starting with random read
file size 128MB, record size 8KB, depth 512, ios per iteration 8
max io_submit 8, buffer alignment set to 4KB
threads 1 files 1 contexts 1 context offset 2MB verification off
Running single thread version
random read on /dev/vda (151.71 MB/s) 128.00 MB in 0.84s
thread 0 random read totals (151.55 MB/s) 128.00 MB in 0.84s
2)
[root@RHEL-6 ~]# ./aio-stress -c 1 -t 1 -s 128 -r 8 -O -o 3 -d 512 /dev/vda
num_thread 1
adding stage random read
starting with random read
file size 128MB, record size 8KB, depth 512, ios per iteration 8
max io_submit 8, buffer alignment set to 4KB
threads 1 files 1 contexts 1 context offset 2MB verification off
Running single thread version
random read on /dev/vda (201.04 MB/s) 128.00 MB in 0.64s
thread 0 random read totals (200.76 MB/s) 128.00 MB in 0.64s
3)
[root@RHEL-6 ~]# ./aio-stress -c 1 -t 1 -s 128 -r 8 -O -o 3 -d 512 /dev/vda
num_thread 1
adding stage random read
starting with random read
file size 128MB, record size 8KB, depth 512, ios per iteration 8
max io_submit 8, buffer alignment set to 4KB
threads 1 files 1 contexts 1 context offset 2MB verification off
Running single thread version
random read on /dev/vda (135.31 MB/s) 128.00 MB in 0.95s
thread 0 random read totals (135.19 MB/s) 128.00 MB in 0.95s
4)
[root@RHEL-6 ~]# ./aio-stress -c 1 -t 1 -s 128 -r 8 -O -o 3 -d 512 /dev/vda
num_thread 1
adding stage random read
starting with random read
file size 128MB, record size 8KB, depth 512, ios per iteration 8
max io_submit 8, buffer alignment set to 4KB
threads 1 files 1 contexts 1 context offset 2MB verification off
Running single thread version
random read on /dev/vda (116.93 MB/s) 128.00 MB in 1.09s
thread 0 random read totals (116.82 MB/s) 128.00 MB in 1.10s
5)
[root@RHEL-6 ~]# ./aio-stress -c 1 -t 1 -s 128 -r 8 -O -o 3 -d 512 /dev/vda
num_thread 1
adding stage random read
starting with random read
file size 128MB, record size 8KB, depth 512, ios per iteration 8
max io_submit 8, buffer alignment set to 4KB
threads 1 files 1 contexts 1 context offset 2MB verification off
Running single thread version
random read on /dev/vda (130.79 MB/s) 128.00 MB in 0.98s
thread 0 random read totals (130.65 MB/s) 128.00 MB in 0.98s
>
> Two contradicting results?
Hmm, I need test in /tmp/ to prevent it.
>
> Thanks
> Vivek
--
Kind regards,
Minchan Kim
next prev parent reply other threads:[~2011-12-22 23:26 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-21 1:00 Minchan Kim
2011-12-21 1:00 ` [PATCH 1/6] block: add bio_map_sg Minchan Kim
2011-12-21 1:00 ` [PATCH 2/6] virtio: support unlocked queue kick Minchan Kim
2011-12-21 1:00 ` [PATCH 3/6] virtio-blk: remove the unused list of pending requests Minchan Kim
2011-12-21 1:00 ` [PATCH 4/6] virtio-blk: implement ->make_request Minchan Kim
2011-12-22 12:20 ` Stefan Hajnoczi
2011-12-22 20:28 ` Christoph Hellwig
2011-12-21 1:00 ` [PATCH 5/6] virtio-blk: Support batch I/O for enhancing sequential IO Minchan Kim
2011-12-21 1:00 ` [PATCH 6/6] virtio-blk: Emulate Flush/FUA Minchan Kim
2011-12-21 5:08 ` [PATCH 0/6][RFC] virtio-blk: Change I/O path from request to BIO Rusty Russell
2011-12-21 5:56 ` Minchan Kim
2011-12-21 8:28 ` Sasha Levin
2011-12-21 8:17 ` Minchan Kim
2011-12-21 19:11 ` Vivek Goyal
2011-12-22 1:05 ` Minchan Kim
2011-12-22 15:45 ` Vivek Goyal
2011-12-22 23:26 ` Minchan Kim [this message]
2011-12-22 12:57 ` Stefan Hajnoczi
2011-12-22 23:41 ` Minchan Kim
2012-01-01 16:45 ` Stefan Hajnoczi
2012-01-02 7:48 ` Dor Laor
2012-01-02 16:12 ` Paolo Bonzini
2012-01-02 16:15 ` Christoph Hellwig
2012-01-02 16:18 ` Paolo Bonzini
2012-01-02 16:23 ` Christoph Hellwig
2012-01-02 16:18 ` Christoph Hellwig
2012-01-02 16:21 ` Avi Kivity
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=20111222232642.GA7056@barrios-laptop.redhat.com \
--to=minchan@kernel.org \
--cc=axboe@kernel.dk \
--cc=chrisw@sous-sol.org \
--cc=hch@infradead.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=stefanha@linux.vnet.ibm.com \
--cc=vgoyal@redhat.com \
/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®