libvirt-java怎么获得kvm虚拟机内存使用率

libvirt-java怎么获得kvm虚拟机内存使用率,第1张

使用libvirt的命令行工具可以获取虚机的内存信息,方式如下:

$ virsh list

Id Name State

----------------------------------------------------

46 instance-0000081a running

117 instance-000008c0 running

122 instance-00000920 running

$ virsh dommemstat 46

actual 2097152

swap_in 0

rss 1031060

actual是启动虚机时设置的最大内存,rss是qemu process在宿主机上所占用的内存,可以通过 grep VmRSS /proc/$(pidof qemu-system-x86_64)/status 得到。但是我们要获取的是虚机内部的内存使用情况,这样明显不能满足需求。

我们还需要给虚机做些配置,给虚机的libvirtxml描述文件添加下面的内容:

#每10s钟收集一次

<memballoon model="virtio">

<stats period="10"/>

</memballoon>

再次查询虚机的内存信息,得到:

actual 2097152

swap_in 0

swap_out 0

unused 1904816

available 2050112

rss 299952

unused代表虚机内部未使用的内存量,available代表虚机内部识别出的总内存量,那么虚机内部的内存使用量则是(available-unused)的结果。

使用wmi

类“Win32_Processor”中LoadPercentage属性为当前的cpu使用率

示例代码: Private Sub Timer1_Timer()

Dim WMI服务 As Object

Dim 对象 As Object

Dim 子对象 As Object

Dim 电脑名 As String

Dim 刷新 As Long

刷新 = 0

电脑名 = "" '表示本地计算机

Set WMI服务 = GetObject("winmgmts://" & 电脑名 & "/root/cimv2")

Set 对象 = WMI服务InstancesOf("Win32_Processor")

MeCurrentX = 0

MeCurrentY = 0

For Each 子对象 In 对象

If 刷新 = 0 Then

刷新 = 1

MeCls

End If

MePrint 子对象Name & "[" & 子对象CurrentClockSpeed & "Hz] 使用率:" & _

子对象LoadPercentage & "%"

Next

End Sub

一般 *** 作系统的内存占用率有两种:

1、是基于虚拟内存的计算 ,我记得在早些时候xp系统看到的那个内存使用率就是这个。

2、基于物理 内存的计算 。

以windows来说,都有相应的内存函数来获取相应的值进行计算即可。

参考如下:

获取服务器性能CPU、内存、硬盘等使用率 get_used_statusphp

<php

include("connphp");

$obj_MyConnect = new MyConnect();

$obj_MyConnect -> connect(DB_SERVER,DB_USER,DB_PWD,DB_NMAE);

function get_used_status(){

$fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况

$rs = "";

while(!feof($fp)){

$rs = fread($fp,1024);

}

pclose($fp);

$sys_info = explode("\n",$rs);

$tast_info = explode(",",$sys_info[3]);//进程 数组

$cpu_info = explode(",",$sys_info[4]); //CPU占有量 数组

$mem_info = explode(",",$sys_info[5]); //内存占有量 数组

//正在运行的进程数

$tast_running = trim(trim($tast_info[1],'running'));

//CPU占有量

$cpu_usage = trim(trim($cpu_info[0],'Cpu(s): '),'%us'); //百分比

//内存占有量

$mem_total = trim(trim($mem_info[0],'Mem: '),'k total');

$mem_used = trim($mem_info[1],'k used');

$mem_usage = round(100intval($mem_used)/intval($mem_total),2); //百分比

$fp = popen('df -lh | grep -E "^(/)"',"r");

$rs = fread($fp,1024);

pclose($fp);

$rs = preg_replace("/\s{2,}/",' ',$rs); //把多个空格换成 “_”

$hd = explode(" ",$rs);

$hd_avail = trim($hd[3],'G'); //磁盘可用空间大小 单位G

$hd_usage = trim($hd[4],'%'); //挂载点 百分比

//print_r($hd);

//检测时间

$fp = popen("date +"%Y-%m-%d %H:%M"","r");

$rs = fread($fp,1024);

pclose($fp);

$detection_time = trim($rs);

以上就是关于libvirt-java怎么获得kvm虚拟机内存使用率全部的内容,包括:libvirt-java怎么获得kvm虚拟机内存使用率、vb.net如何获取当前进程的cpu和内存使用率、你好,请问内存占用率怎么计算谢谢。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9288406.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存