使用libvirt技术监控虚拟机(三)

 
   

 (一)计算资源与内存资源的监控

libvirt中提供virDomainGetInfo方法可以将一个domain的计算资源和内存资源的使用情况封装在一个结构体中,如下:

struct virDomainInfo{
unsigned char state : //the running state, one of virDomainState  
unsigned long maxMem :// the maximum memory in KBytes allowed 
unsigned long memory :// the memory in KBytes used by the domain 
unsigned short nrVirtCpu :// the number of virtual CPUs for the domain 
unsigned long long cpuTime : //the CPU time used in nanoseconds 
}

  

获取内存资源和计算资源监控信息并打印的方法如下:

virDomainInfoPtr domaininfo;   
domaininfo = malloc(sizeof(virDomainInfo)* 1);
m = virDomainGetInfo(allDomains[numOfDom] , domaininfo);
printf("状态:%d    ",(*domaininfo).state);
printf("最大内存:%ld    ",((*domaininfo).maxMem)/1024);
printf("内存:%ld   ",((*domaininfo).memory)/1024);
printf("虚拟cpu个数:%d   ",(*domaininfo).nrVirtCpu);
printf("cpu时间:%lld   ",(*domaininfo).cpuTime);

  

 

(二)获得网络流量信息

    可以使用 virDomainInterfaceStats方法,将一个domain的网络流量信息封装在一个virDomainInterfaceStatsStruct结构体中,该方法需要传递一个虚拟网卡接口的参数,这个参数可以通过XML文件取得:


     
     
     

你可能感兴趣的:(Libvirt)