From: Luiz Capitulino <lcapitulino@redhat.com>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Amit Shah <amit.shah@redhat.com>,
aliguori@us.ibm.com, agl@us.ibm.com, qemu-devel@nongnu.org,
mdroth@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [RFC 3/3] docs: document virtio-balloon stats
Date: Thu, 6 Dec 2012 13:31:09 -0200 [thread overview]
Message-ID: <20121206133109.679b4dc5@doriath.home> (raw)
In-Reply-To: <20121206132411.GJ29942@redhat.com>
On Thu, 6 Dec 2012 13:24:11 +0000
"Daniel P. Berrange" <berrange@redhat.com> wrote:
> On Tue, Dec 04, 2012 at 01:04:48PM -0200, Luiz Capitulino wrote:
> > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
> > ---
> > docs/virtio-balloon-stats.txt | 73 +++++++++++++++++++++++++++++++++++++++++++
> > 1 file changed, 73 insertions(+)
> > create mode 100644 docs/virtio-balloon-stats.txt
> >
> > diff --git a/docs/virtio-balloon-stats.txt b/docs/virtio-balloon-stats.txt
> > new file mode 100644
> > index 0000000..7e7ddc4
> > --- /dev/null
> > +++ b/docs/virtio-balloon-stats.txt
> > @@ -0,0 +1,73 @@
> > +virtio balloon memory statistics
> > +================================
> > +
> > +The virtio balloon driver supports guest memory statistics reporting. These
> > +statistics are available to QEMU users as QOM (QEMU Obejct Model) device
> > +properties via a polling mechanism.
> > +
> > +Basically, clients have to enable polling. Then they can query the available
> > +statistics.
> > +
> > +There are two control properties and six memory statistics from the guest.
> > +
> > +The control properties are:
> > +
> > + o stats-polling-interval: a value greater than zero enables polling
> > + in the specified interval (in seconds). When value equals zero,
> > + polling is disabled. If polling is already enabled and a value
> > + greater than zero is written, the polling interval time is changed
> > +
> > + o stats-last-update: last stats update timestamp, in seconds
> > +
> > +The memory statistics are:
> > +
> > + o stat-swap-in
> > + o stat-swap-out
> > + o stat-major-faults
> > + o stat-minor-faults
> > + o stat-free-memory
> > + o stat-total-memory
> > +
> > +All values are in bytes. A value of -1 means that the statistic isn't
> > +available right now.
> > +
> > +Here are a few examples. The virtio-balloon device is assumed to be in the
> > +'/machine/peripheral-anon/device[1]' QOM path.
> > +
> > +Enable polling with 2 seconds interval:
> > +
> > +{ "execute": "qom-set",
> > + "arguments": { "path": "/machine/peripheral-anon/device[1]",
> > + "property": "stats-polling-interval", "value": 2 } }
> > +
> > +{ "return": {} }
> > +
> > +Change polling to 10 seconds:
> > +
> > +{ "execute": "qom-set",
> > + "arguments": { "path": "/machine/peripheral-anon/device[1]",
> > + "property": "stats-polling-interval", "value": 10 } }
> > +
> > +{ "return": {} }
> > +
> > +Get last update timestamp and free memory stat:
> > +
> > +{ "execute": "qom-get",
> > + "arguments": { "path": "/machine/peripheral-anon/device[1]",
> > + "property": "stats-last-update" } }
> > +
> > +{ "return": 1354629634 }
> > +
> > +{ "execute": "qom-get",
> > + "arguments": { "path": "/machine/peripheral-anon/device[1]",
> > + "property": "stat-free-memory" } }
> > +
> > +{ "return": 845115392 }
> > +
> > +Disable polling:
> > +
> > +{ "execute": "qom-set",
> > + "arguments": { "path": "/machine/peripheral-anon/device[1]",
> > + "property": "stats-polling-interval", "value": 0 } }
> > +
> > +{ "return": {} }
>
>
> What sort of performance implications are there for enabling polling of
> virtio stats. Is it the kind of thing that it is reasonable to just
> enable for all VMs on a 10 second interval, so we'll always have stats
> available without having to have thought to enable them ahead of time ?
I can't think of any performance implications. Would be nice to get a
second opinion from the CC'ed people though.
> eg, the use case I'm wondering is that someone comes along and just
> runs 'virsh memstats $DOMAIN' and wants to see the latest data
> right away.
>
> I'm not suggesting that libvirt would be actually asking QEMU for the
> stats every 10 seconds. Only that libvirt tells QEMU to collect them.
> Then libvirt can just ask for them whenver someone wants them.
Note that once you enable polling, the balloon driver will immediately make
a request to the guest, that is, it won't wait the specified time interval to
send the first request.
So, the first call to virsh memstats could start polling and also poll for it
(although you do need to be prepared for the case where the guest doesn't
respond).
Also, you could consider adding the time interval in libvirt's API and
virsh memstats.
next prev parent reply other threads:[~2012-12-06 15:48 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-04 15:04 [Qemu-devel] [RFC 0/3] re-enable balloon stats Luiz Capitulino
2012-12-04 15:04 ` [Qemu-devel] [RFC 1/3] virtio-balloon: drop old stats code Luiz Capitulino
2012-12-04 15:04 ` [Qemu-devel] [RFC 2/3] virtio-balloon: re-enable balloon stats Luiz Capitulino
2012-12-06 17:03 ` mdroth
2012-12-06 17:58 ` Luiz Capitulino
2012-12-04 15:04 ` [Qemu-devel] [RFC 3/3] docs: document virtio-balloon stats Luiz Capitulino
2012-12-06 13:24 ` Daniel P. Berrange
2012-12-06 15:31 ` Luiz Capitulino [this message]
2012-12-06 16:59 ` mdroth
2012-12-07 5:30 ` Dietmar Maurer
2012-12-07 12:23 ` Luiz Capitulino
2012-12-07 15:01 ` Dietmar Maurer
2012-12-07 18:54 ` Luiz Capitulino
2012-12-08 6:26 ` Dietmar Maurer
2012-12-10 11:19 ` Luiz Capitulino
2012-12-10 12:06 ` Dietmar Maurer
2012-12-10 7:52 ` Alexandre DERUMIER
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=20121206133109.679b4dc5@doriath.home \
--to=lcapitulino@redhat.com \
--cc=agl@us.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=amit.shah@redhat.com \
--cc=berrange@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).