Thanks.
But I am using XEN.
And I also don't want to go inside guest. I mean I want to get memory usage at the same level I am getting max memory and total memory.
I have another question. If Memory attribute of GetDomainInfo gives total memory I.e. memory in use plus remaining memory than what is the use of Max Memory?
I also programmatically updated Memory using libvirt function I.e. 1GB to 512mb. When tried to get domain statistics again I got Max Memory 512mb and Memory 1GB.
How is this possible?
On Fri, 2016-08-05 at 17:45 +0500, Aleem Akhtar wrote:
> Ok. So that's why I was getting 1 GB as a result.
> So is there any way I can get memory in used
programmatically?
> I mean without going inside guest domain.
The only way I can come up with at the moment relies on
qemu-guest-agent:
$ virsh qemu-agent-command guest \
'{"execute": "guest-exec",
"arguments": {"path": "/usr/bin/free",
"capture-output": true}}'
{"return":{"pid":1425}}
$ virsh qemu-agent-command guest \
'{"execute": "guest-exec-status",
"arguments": {"pid": 1425}}'
{"return":{"exitcode":0,"out-data":"ICA...zIK","exited": true}}
$ echo 'ICA...zIK' | base64 -d
totalused free
Mem: 402040897244 3359560
Swap: 10485720 1048572
Of course you'll need to have qemu-guest-agent running
inside the guest and process all the resulting information
yourself.
See the virDomainQemuAgentCommand() API.
--
Andrea Bolognani / Red Hat / Virtualization