首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用SSH (KVM)的情况下获取VM的CPU使用率

问在不使用SSH (KVM)的情况下获取VM的CPU使用率
EN

Stack Overflow用户
提问于 2014-06-18 11:52:34
回答 1查看 6.8K关注 0票数 0

是否有任何方法可以在不通过SSH连接到客户的情况下获得KVM中vm的cpu使用和内存使用情况?我的意思是,虚拟机管理器是如何获得CPU使用率(图表)的?我也需要cpu使用率和内存的百分比。有人知道如何通过libvirt与kvm通信吗?我只需要尽可能多地获得cpu使用量和内存,而不需要SSH。

场景:我正在尝试构建一个包含负载均衡器(主机)+3服务器( am )的设置,然后它会通知我这3台服务器的cpu使用情况,这样如果我需要提供另一台服务器,我就会知道什么时候。

谢谢你的帮助。真的很感激。

EN

回答 1

Stack Overflow用户

发布于 2014-06-18 17:57:00

您可以使用virDomainGetInfo函数从利布维特获取有关域占用的内存和cpu时间的信息。

下面是一个非常简单的例子:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#include <libvirt/libvirt.h>

int main(int argc, char **argv) {
    virConnectPtr   c;
    virDomainPtr    d;
    virDomainInfo   di;
    int res;
    int domid;

    domid = atoi(argv[1]);

    c = virConnectOpen(NULL);
    d = virDomainLookupByID(c, domid);
    res = virDomainGetInfo(d, &di);

    printf("res = %d\n", res);
    printf("memory used = %ld\n", di.memory);
    printf("cpu time used = %ld\n", di.cpuTime);
}

更新

我确信,如果您检查了virt-manager的源代码,您会发现它正是使用这些函数来生成您在问题中提到的各种图形。您可以通过查看"cpu时间“值随时间变化的多少来确定cpu”使用率“。

如果您只是在寻找类似于域正在使用的主机cpu的%,您可以只使用ps。也就是说,如果对应的qemu进程为19650,则可以运行:

代码语言:javascript
复制
$ ps -p 19650 -o pid,%cpu
  PID %CPU
19650 10.2
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24284869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档