All of lore.kernel.org
 help / color / mirror / Atom feed
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 --]

      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.