From: Halil Pasic <pasic@linux.ibm.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: Thomas Huth <thuth@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
David Hildenbrand <david@redhat.com>,
qemu-devel@nongnu.org,
Christian Borntraeger <borntraeger@de.ibm.com>,
qemu-s390x@nongnu.org, Michael Mueller <mimu@linux.ibm.com>
Subject: Re: [PATCH 1/1] virtio-blk-ccw: tweak the default for num_queues
Date: Wed, 11 Nov 2020 16:16:44 +0100 [thread overview]
Message-ID: <20201111161644.1f97df61.pasic@linux.ibm.com> (raw)
In-Reply-To: <20201111133815.10b8f3b7.cohuck@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 4613 bytes --]
On Wed, 11 Nov 2020 13:38:15 +0100
Cornelia Huck <cohuck@redhat.com> wrote:
> Tags: inv, me
> From: Cornelia Huck <cohuck@redhat.com>
> To: Michael Mueller <mimu@linux.ibm.com>
> Cc: Thomas Huth <thuth@redhat.com>, David Hildenbrand <david@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, qemu-devel@nongnu.org, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@de.ibm.com>, qemu-s390x@nongnu.org
> Subject: Re: [PATCH 1/1] virtio-blk-ccw: tweak the default for num_queues
> Date: Wed, 11 Nov 2020 13:38:15 +0100
> Sender: "Qemu-devel" <qemu-devel-bounces+pasic=linux.ibm.com@nongnu.org>
> Organization: Red Hat GmbH
>
> On Wed, 11 Nov 2020 13:26:11 +0100
> Michael Mueller <mimu@linux.ibm.com> wrote:
>
> > On 10.11.20 15:16, Michael Mueller wrote:
> > >
> > >
> > > On 09.11.20 19:53, Halil Pasic wrote:
> > >> On Mon, 9 Nov 2020 17:06:16 +0100
> > >> Cornelia Huck <cohuck@redhat.com> wrote:
> > >>
> > >>>> @@ -20,6 +21,11 @@ static void
> > >>>> virtio_ccw_blk_realize(VirtioCcwDevice *ccw_dev, Error **errp)
> > >>>> {
> > >>>> VirtIOBlkCcw *dev = VIRTIO_BLK_CCW(ccw_dev);
> > >>>> DeviceState *vdev = DEVICE(&dev->vdev);
> > >>>> + VirtIOBlkConf *conf = &dev->vdev.conf;
> > >>>> +
> > >>>> + if (conf->num_queues == VIRTIO_BLK_AUTO_NUM_QUEUES) {
> > >>>> + conf->num_queues = MIN(4, current_machine->smp.cpus);
> > >>>> + }
> > >>>
> > >>> I would like to have a comment explaining the numbers here, however.
> > >>>
> > >>> virtio-pci has a pretty good explanation (use 1:1 for vqs:vcpus if
> > >>> possible, apply some other capping). 4 seems to be a bit arbitrary
> > >>> without explanation, although I'm sure you did some measurements :)
> > >>
> > >> Frankly, I don't have any measurements yet. For the secure case,
> > >> I think Mimu has assessed the impact of multiqueue, hence adding Mimu to
> > >> the cc list. @Mimu can you help us out.
> > >>
> > >> Regarding the normal non-protected VMs I'm in a middle of producing some
> > >> measurement data. This was admittedly a bit rushed because of where we
> > >> are in the cycle. Sorry to disappoint you.
> > >
> > > I'm talking with the perf team tomorrow. They have done some
> > > measurements with multiqueue for PV guests and I asked for a comparison
> > > to non PV guests as well.
> >
> > The perf team has performed measurements for us that show that a *PV
> > KVM guest* benefits in terms of throughput for random read, random write
> > and sequential read (no difference for sequential write) by a multi
> > queue setup. CPU cost are reduced as well due to reduced spinlock
> > contention.
>
> Just to be clear, that was with 4 queues?
>
> >
> > For a *standard KVM guest* it currently has no throughput effect. No
> > benefit and no harm. I have asked them to finalize their measurements
> > by comparing the CPU cost as well. I will receive that information on
> > Friday.
>
> Thank you for checking!
The results of my measurements (normal case only) are consistent with
these findings.
My setup looks like this: A guest with 6 vcpus and an attached
virtio-blk-ccw disk backed by a raw image on a tmpfs (i.e. backed by
ram, because we are interested in virtio and not in the scsi disk). The
performance was evaluated with fio, randrw, queuedepth=1 and bs=1M. I
scaled the number of virtqueues from 1 to 5, and collected 30 data points
each.
The full fio command line I used is at the end of this mail.
For a nicer table, please see the attached png. Regarding the difference
in averages, it's little about 1,2 percent.
The percentages are with respect to average over
all queues values.
queues
1 Average - write_iops 99.45%
Average - write_bw 99.45%
Average - read_iops 99.44%
Average - read_bw 99.44%
2 Average - write_iops 99.93%
Average - write_bw 99.93%
Average - read_iops 99.92%
Average - read_bw 99.92%
3 Average - write_iops 100.02%
Average - write_bw 100.02%
Average - read_iops 100.02%
Average - read_bw 100.02%
4 Average - write_iops 100.64%
Average - write_bw 100.64%
Average - read_iops 100.64%
Average - read_bw 100.64%
5 Average - write_iops 99.97%
Average - write_bw 99.97%
Average - read_iops 99.97%
Average - read_bw 99.97%
Total Average - write_iops 100.00%
Total Average - write_bw 100.00%
Total Average - read_iops 100.00%
Total Average - read_bw 100.00%
fio --ramp_time=30s --output-format=json --bs=1M --ioengine=libaio --readwrite=randrw --runtime=120s --size=1948m --name=measurement --gtod_reduce=1 --direct=1 --iodepth=1 --filename=/dev/vda --time_based
[-- Attachment #2: data.png --]
[-- Type: image/png, Size: 140686 bytes --]
prev parent reply other threads:[~2020-11-11 15:18 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-09 15:48 [PATCH 1/1] virtio-blk-ccw: tweak the default for num_queues Halil Pasic
2020-11-09 15:53 ` Christian Borntraeger
2020-11-09 16:06 ` Cornelia Huck
2020-11-09 18:53 ` Halil Pasic
2020-11-10 8:47 ` Christian Borntraeger
2020-11-10 10:15 ` Cornelia Huck
2020-11-10 10:40 ` Halil Pasic
2020-11-10 13:18 ` Christian Borntraeger
2020-12-15 8:26 ` Cornelia Huck
2020-12-15 11:33 ` Halil Pasic
2020-12-15 17:27 ` Cornelia Huck
2020-11-10 14:16 ` Michael Mueller
2020-11-11 12:26 ` Michael Mueller
2020-11-11 12:38 ` Cornelia Huck
2020-11-11 12:49 ` Michael Mueller
2020-11-12 13:31 ` Halil Pasic
2020-11-11 15:16 ` Halil Pasic [this message]
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=20201111161644.1f97df61.pasic@linux.ibm.com \
--to=pasic@linux.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=cohuck@redhat.com \
--cc=david@redhat.com \
--cc=mimu@linux.ibm.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=thuth@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.