[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bad virsh save /dev/null performance (600 MiB/s max)
|
From: |
Dr. David Alan Gilbert |
|
Subject: |
Re: bad virsh save /dev/null performance (600 MiB/s max) |
|
Date: |
Wed, 9 Mar 2022 18:53:40 +0000 |
|
User-agent: |
Mutt/2.1.5 (2021-12-30) |
* Claudio Fontana (cfontana@suse.de) wrote:
> On 3/9/22 7:39 PM, Dr. David Alan Gilbert wrote:
> > * Daniel P. Berrangé (berrange@redhat.com) wrote:
> >> On Wed, Mar 09, 2022 at 07:27:12PM +0100, Claudio Fontana wrote:
> >>>
> >>> One difference I could see looking at the qmp commands issued by libvirt
> >>> in the "virsh save" case,
> >>> is "detach:true" in the migration command (which seems to have no effect
> >>> in qemu),
> >>
> >> That is a bug in libvirt - it should not be setting that in QMP.
> >>
> >> To quote the QAPI spec for 'migrate'
> >>
> >> # @detach: this argument exists only for compatibility reasons and
> >> # is ignored by QEMU
> >>
> >>
> >>>
> >>>
> >>> and maybe more interestingly this stuff about the "fd":
> >>>
> >>>
> >>> 2022-03-09 17:29:34.247+0000: 20390: info : qemuMonitorSend:995 :
> >>> QEMU_MONITOR_SEND_MSG: mon=0x7faa9003ebf0
> >>> msg={"execute":"getfd","arguments":{"fdname":"migrate"},"id":"libvirt-390"}^M
> >>> fd=34
> >>> 2022-03-09 17:29:34.247+0000: 20387: info : qemuMonitorIOWrite:452 :
> >>> QEMU_MONITOR_IO_WRITE: mon=0x7faa9003ebf0
> >>> buf={"execute":"getfd","arguments":{"fdname":"migrate"},"id":"libvirt-390"}^M
> >>> len=73 ret=73 errno=0
> >>> 2022-03-09 17:29:34.247+0000: 20387: info : qemuMonitorIOWrite:457 :
> >>> QEMU_MONITOR_IO_SEND_FD: mon=0x7faa9003ebf0 fd=34 ret=73 errno=0
> >>> 2022-03-09 17:29:34.248+0000: 20387: info :
> >>> qemuMonitorJSONIOProcessLine:240 : QEMU_MONITOR_RECV_REPLY:
> >>> mon=0x7faa9003ebf0 reply={"return": {}, "id": "libvirt-390"}
> >>> 2022-03-09 17:29:34.249+0000: 20390: info : qemuMonitorSend:995 :
> >>> QEMU_MONITOR_SEND_MSG: mon=0x7faa9003ebf0
> >>> msg={"execute":"migrate","arguments":{"detach":true,"blk":false,"inc":false,"uri":"fd:migrate"},"id":"libvirt-391"}^M
> >>> fd=-1
> >>> 2022-03-09 17:29:34.249+0000: 20387: info : qemuMonitorIOWrite:452 :
> >>> QEMU_MONITOR_IO_WRITE: mon=0x7faa9003ebf0
> >>> buf={"execute":"migrate","arguments":{"detach":true,"blk":false,"inc":false,"uri":"fd:migrate"},"id":"libvirt-391"}^M
> >>> len=113 ret=113 errno=0
> >>>
> >>>
> >>> in qemu I am currently looking at the code in migration/socket.c
> >>> vs the code in migration/fd.c , wonder if the difference would
> >>> stem from there..
> >>
> >> When saving to a file, libvirt passes in a pre-opened FD for
> >> QEU to use. IIRC this should always be a pipe FD connected to
> >> libvirt's iohelper program, sometimes indirectly via a compression
> >> program.
> >
> > In which case, what is a simple 'top' showing on the system?
>
> libvirt_iohelper is the top cpu consumer at 60-something%,
> qemu-system-x86_64 is at 30-40%.
Right, with plain migration qemu just writes directly to the fd
instead of bubbling through the iohelper.
You could probably optimise that, but there's probably one or two
extra copies in the way.
Dave
> C.
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
- Re: starting to look at qemu savevm performance, a first regression detected, (continued)
- Re: starting to look at qemu savevm performance, a first regression detected, Claudio Fontana, 2022/03/07
- Re: starting to look at qemu savevm performance, a first regression detected, Dr. David Alan Gilbert, 2022/03/07
- bad qemu savevm to /dev/null performance (600 MiB/s max) (Was: Re: starting to look at qemu savevm performance, a first regression detected), Claudio Fontana, 2022/03/09
- Re: bad qemu savevm to /dev/null performance (600 MiB/s max) (Was: Re: starting to look at qemu savevm performance, a first regression detected), Dr. David Alan Gilbert, 2022/03/09
- Re: bad qemu savevm to /dev/null performance (600 MiB/s max) (Was: Re: starting to look at qemu savevm performance, a first regression detected), Daniel P . Berrangé, 2022/03/09
- Re: bad qemu savevm to /dev/null performance (600 MiB/s max) (Was: Re: starting to look at qemu savevm performance, a first regression detected), Claudio Fontana, 2022/03/09
- Re: bad virsh save /dev/null performance (600 MiB/s max), Claudio Fontana, 2022/03/09
- Re: bad virsh save /dev/null performance (600 MiB/s max), Daniel P . Berrangé, 2022/03/09
- Re: bad virsh save /dev/null performance (600 MiB/s max), Dr. David Alan Gilbert, 2022/03/09
- Re: bad virsh save /dev/null performance (600 MiB/s max), Claudio Fontana, 2022/03/09
- Re: bad virsh save /dev/null performance (600 MiB/s max),
Dr. David Alan Gilbert <=
- Re: bad virsh save /dev/null performance (600 MiB/s max), Daniel P . Berrangé, 2022/03/09
- Re: bad virsh save /dev/null performance (600 MiB/s max), Claudio Fontana, 2022/03/10
- Re: bad qemu savevm to /dev/null performance (600 MiB/s max) (Was: Re: starting to look at qemu savevm performance, a first regression detected), Claudio Fontana, 2022/03/09