mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
migration/dirtyrate: Introduce domdirtyrate-calc virsh api
Introduce domdirtyrate-calc virsh api to start calculating domain's memory dirty rate: # virsh domdirtyrate-calc <domain> [--seconds <sec>] Signed-off-by: Hao Wang <wanghao232@huawei.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
fbe99823e2
commit
a2ae2dad06
@ -1704,6 +1704,23 @@ states other than "ok" or "error" the command also prints number of
|
||||
seconds elapsed since the control interface entered its current state.
|
||||
|
||||
|
||||
domdirtyrate-calc
|
||||
-----------------
|
||||
|
||||
**Syntax:**
|
||||
|
||||
::
|
||||
|
||||
domdirtyrate-calc <domain> [--seconds <sec>]
|
||||
|
||||
Calculate an active domain's memory dirty rate which may be expected by
|
||||
user in order to decide whether it's proper to be migrated out or not.
|
||||
The ``seconds`` parameter can be used to calculate dirty rate in a
|
||||
specific time which allows 60s at most now and would be default to 1s
|
||||
if missing. The calculated dirty rate information is available by calling
|
||||
'domstats --dirtyrate'.
|
||||
|
||||
|
||||
domdisplay
|
||||
----------
|
||||
|
||||
|
@ -14402,6 +14402,58 @@ cmdSetUserSSHKeys(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* "domdirtyrate" command
|
||||
*/
|
||||
static const vshCmdInfo info_domdirtyrate_calc[] = {
|
||||
{.name = "help",
|
||||
.data = N_("Calculate a vm's memory dirty rate")
|
||||
},
|
||||
{.name = "desc",
|
||||
.data = N_("Calculate memory dirty rate of a domain in order to "
|
||||
"decide whether it's proper to be migrated out or not.\n"
|
||||
"The calculated dirty rate information is available by "
|
||||
"calling 'domstats --dirtyrate'.")
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
static const vshCmdOptDef opts_domdirtyrate_calc[] = {
|
||||
VIRSH_COMMON_OPT_DOMAIN_FULL(0),
|
||||
{.name = "seconds",
|
||||
.type = VSH_OT_INT,
|
||||
.help = N_("calculate memory dirty rate within specified seconds, "
|
||||
"the supported value range from 1 to 60, default to 1.")
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
||||
static bool
|
||||
cmdDomDirtyRateCalc(vshControl *ctl, const vshCmd *cmd)
|
||||
{
|
||||
virDomainPtr dom = NULL;
|
||||
int seconds = 1; /* the default value is 1 */
|
||||
bool ret = false;
|
||||
|
||||
if (!(dom = virshCommandOptDomain(ctl, cmd, NULL)))
|
||||
return false;
|
||||
|
||||
if (vshCommandOptInt(ctl, cmd, "seconds", &seconds) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainStartDirtyRateCalc(dom, seconds, 0) < 0)
|
||||
goto cleanup;
|
||||
|
||||
vshPrintExtra(ctl, _("Start to calculate domain's memory "
|
||||
"dirty rate successfully.\n"));
|
||||
ret = true;
|
||||
|
||||
cleanup:
|
||||
virshDomainFree(dom);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
const vshCmdDef domManagementCmds[] = {
|
||||
{.name = "attach-device",
|
||||
.handler = cmdAttachDevice,
|
||||
@ -15041,5 +15093,11 @@ const vshCmdDef domManagementCmds[] = {
|
||||
.info = info_guestinfo,
|
||||
.flags = 0
|
||||
},
|
||||
{.name = "domdirtyrate-calc",
|
||||
.handler = cmdDomDirtyRateCalc,
|
||||
.opts = opts_domdirtyrate_calc,
|
||||
.info = info_domdirtyrate_calc,
|
||||
.flags = 0
|
||||
},
|
||||
{.name = NULL}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user