计算资源利用率在虚拟化的环境下如何获取信息?

责任编辑:editor003

2012-12-12 10:13:39

摘自:IT专家网

服务器的虚拟化已经越来越多的为企业所采纳,同时对虚拟化环境中服务器的集中监控,也成为企业IT管理标准配置。

服务器的虚拟化已经越来越多的为企业所采纳,同时对虚拟化环境中服务器的集中监控,也成为企业IT管理标准配置。这种情况下,如何从已经监控得到的海量数据中分析虚拟化环境计算资源的使用情况,成为IT管理者最关心的问题,同时也是企业IT投资的重要参考依据。本文以ITM(IBM Tivoli Monitoring)对VMware 虚拟化环境的监控数据为基础,从以下几个方面,介绍如何获取和分析计算资源的利用率:

阐述如何配置VMware VI Agent属性组收集虚拟化环境监控数据到数据仓库。

介绍ITM数据仓库中VMware VI监视代理相关数据表格。

虚拟机和虚拟化服务器计算资源利用率相关数据分析。

1. 配置VMware VI Agent属性组收集虚拟化环境监控数据到数据仓库

本节以一个典型ITM监控VMware虚拟化环境下的方案为例,介绍如何配置监控数据的收集。图1是一个典型的ITM监控环境部署方案(关于如何部署ITM监控VMware虚拟化环境,请参考IT168上的文章: 应用IBM Tivoli实现虚拟化环境的监控)。在这里主要关注TEPS(Tivoli Enterprise Portal Server) 和数据仓库TDW(Tivoli Data Warehouse)。Tivoli Enterprise Portal 提供了历史数据收集和报告功能,配置并启动了历史数据收集后,可将数据复制到Tivoli 数据仓库长期存储。通过“历史收集配置”窗口,可以为各个属性组配置历史数据收集,并指定要从哪些受管系统收集数据、收集数据的频率、短期内数据的存储位置以及是否将数据长期保存到数据仓库。

虚拟化环境计算资源利用率信息获取分析

▲图1 ITM监控部署典型架构

首先以管理员sysadmin的身份登录到门户服务器TEPS,在工具栏内选择“History Configuration … (Ctrl + H)”,出现如图2所示的历史数据配置界面。

虚拟化环境计算资源利用率信息获取分析

▲图2 监控历史记录配置界面

历史数据配置页面的左侧列表,显示了所有已安装的监视代理程序。选择“VMware VI agent”应用,右侧会显示此应用所包含的所有属性组的信息。如图3所示:

虚拟化环境计算资源利用率信息获取分析

▲图3 配置VMware VI Agent历史数据界面

对于VMware虚拟化环境收集利用率数据,主要配置有关CPU和内存的属性组如下:

KVM_SERVER à“服务器”属性组:ESX 服务器的基本信息

KVM_SERVER_CPU à“服务器CPU”属性组:服务器的CPU利用率信息

KVM_SERVER_MEMORY à“服务器内存”属性组:服务器的内存利用率信息

KVM_VIRTUAL_MACHINES à“虚拟机”属性组:服务器上运行的虚拟机的基本信息

KVM_VM_CPU à“VM CPU”属性组:虚拟机的CPU利用率信息

KVM_VM_MEMORY à“VM 内存”属性组:虚拟机的内存利用率信息

在摘要区域,选择要收集的所有时间段的复选框:每年、每季度、每月、每周、每日和每小时。在修剪区域,选择要修剪的所有时间段的复选框:每年、每季度、每月、每周、每日和每小时。在相应的字段中,指定要保留数据的天数、月数或年数。单击应用以保存选中的属性组的配置。这样就可以将历史数据保存到ITM数据仓库。

2. ITM数据仓库中VMware VI监视代理相关数据表格介绍

ITM监控数据收集到数据仓库后,针对不同的收集频率,会存储到不同的数据库表中。不同频率的监控数据,可以根据不同的需求进行分析。下面以虚拟机CPU数据信息为例,列出了对应数据表和存储内容。数据库中表的显示如图4中所示。

KVM_VM_CPU_H:每小时

KVM_VM_CPU_D:每日

KVM_VM_CPU_W:每周

KVM_VM_CPU_M:每月 

KVM_VM_CPU_Q:每季度

KVM_VM_CPU_Y:每年

ITM数据仓库中VMware VI监视代理数据

▲图4 ITM数据仓库中虚拟机CPU相关数据表

下面详细介绍虚拟机和主机利用率分析中所需要考虑的属性,同时对于每个属性,都从不同的角度进行记录(如最小CPU利用率:MIN_CPU_Utilization和平均CPU利用率:AVG_CPU_Utilizaiton),在这里从某一天天的平均利用率的角度进行分析。

虚拟机CPU “利用率”属性是指CPU利用率的百分比,计算方法是用户时间除以已用时间、就绪时间和等待时间之和,一般取每天的平均利用率数据,在数据库表KVM_VM_CPU_D中字段名称为“AVG_Utilization”。

虚拟机内存“主机利用率”属性是指在上一个数据采样时间间隔内,虚拟机所用内存的百分比(平均值),是MemoryHostUsage除以MemoryTotalSize的百分比,在数据库表KVM_VM_MEMORY_D中字段名称是“AVG_Host_Util”。

服务器CPU“利用率”属性记录虚拟化主机的CPU利用率,数据库表KVM_SERVER_CPU_D中字段名称是“AVG_CPU_Utilization”。

服务器内存“利用率”属性记录虚拟化主机物理内存的利用率,即所有物理内存除以已安装的物理内存所得的百分比,数据库表KVM_SERVER_MEMORY_D中字段名称是“AVG_Memory_Utilization”。

除了上面的利用率数据字段外,还有两个重要的字段需要注意。

“SHIFTPERIOD”是 “轮班和休假周期”的标志位。如果启用轮班,根据数据仓库中配置的高峰期和非高峰期,小时轮班表中为1或2,日轮班表中相对应的值是1和2,与日摘要值相对应的是-1。如果不启用轮班,缺省是-1。如果未启用休假周期,缺省为-1。在按照天的数据中,这个字段的值为“-1”。

“WRITETIME”记录的是数据写入时间,格式为“1120907000000000”。字段中第二,三位为年份的最后两位,接下来是两位月和两位的日。上面的例子代表的是2012年9月7日的数据。

3. 计算资源的利用率分析

根据以上ITM数据仓库中数据表的分析,就可以通过SQL语句取得所需要的利用率数据,下面分别对虚拟机和虚拟化主机利用率进行分析。

3.1 虚拟机利用率

首先从数据库中查询出某一天所有虚拟机的CPU和内存的利用率信息。下面的示例SQL语句可以查询出ITM监控环境中所有的VMware VI agent监视代理所监控到的虚拟机在2012年9月23日的CPU和内存利用率数据信息。查询所得到的结果如图5所示。

WITH temp1

AS (SELECT concat('20',(substr(a.WRITETIME,2,6))) as Date, a."VM_Name" AS VM_NAME, a."AVG_Host_Util" AS AVG_Host_Util

FROM ITMUSER.KVM_VM_MEMORY_D AS a

WHERE a.SHIFTPERIOD = -1

AND a.WRITETIME = '1120923000000000'

ORDER BY a."VM_Name"),

temp2

AS (SELECT concat('20',(substr(b.WRITETIME,2,6))) as Date, b."VM_Name" AS VM_NAME, AVG(b."AVG_Utilization") AS AVG_CPU_Util

FROM ITMUSER.KVM_VM_CPU_D AS b

WHERE b.SHIFTPERIOD = -1

AND b.WRITETIME = '1120923000000000'

GROUP BY b.WRITETIME, b."VM_Name", b."AVG_Utilization")

SELECT temp1.Date,

temp1.VM_NAME,

temp1.AVG_Host_Util,

temp2.AVG_CPU_Util

FROM temp1

LEFT OUTER JOIN temp2

ON ( temp1.VM_NAME = temp2.VM_NAME )

 计算资源的利用率分析

▲图5 虚拟机CPU/内存利用率查询结果

虚拟机CPU和内存的利用率数据已经取得,那么如何对这些数据进行分析呢?这里可以定义不同的利用率状态如下:

低:小于20%

较低:20%到40%之间

正常:40%到60%之间

高:60%到80%之间

过高:大于80%

根据以上的定义,可以得到如图6所示的利用率情况报表。我们可以从图上清楚的了解到在虚拟化环境中,有多少虚拟机的CPU和内存利用率低,有多少已经达到了很高的值。根据这些基本数据,管理员可以对虚拟机的配置进行重新分配,以提高主机利用率,同时提高虚拟机运行性能。

虚拟化服务器利用率

▲图6 虚拟机CPU/内存利用率分析

从上图中可以看到,大部分的虚拟机的CPU利用率都比较低,同时有些特殊的情况,比如内存利用率过高但是CPU利用率很低。对于这些虚拟机,可以进行进一步的分析如何对他们合理分配资源,以提高利用率。

3.2 虚拟化服务器利用率

对于虚拟化服务器的利用率情况,我们采用类似虚拟机的方法来分析。下面的查询语句所得到的查询结果如图7中所示。

WITH temp1

AS(SELECT concat('20',(substr(b.WRITETIME,2,6))) as Date, b."Server_Hostname" AS Server_Name, AVG(b."AVG_CPU_Utilization") as CPU_Utilization

FROM itmuser.kvm_server_cpu_d b

WHERE b.shiftperiod = -1

AND b.writetime = '1120923000000000'

GROUP BY b.writetime, b."Server_Hostname"),

temp2 AS(SELECT concat('20',(substr(a.WRITETIME,2,4))) as Date, a."Server_Hostname" AS Server_Name, a."AVG_Memory_Utilization" as Memory_Utilization

FROM itmuser.kvm_server_memory_d a

WHERE a.shiftperiod = -1

AND a.writetime = '1120923000000000' )

SELECT temp1.Date,

temp1.Server_NAME,

temp1.CPU_Utilization,

temp2.Memory_Utilization

FROM temp1

LEFT OUTER JOIN temp2

ON ( temp1.Server_NAME = temp2.Server_NAME )

总结与参考资料

▲图7 虚拟服务器CPU/内存利用率查询结果

总结与参考资料

▲图8 虚拟服务器CPU/内存利用率分析

从图8中可以看到,大部分的虚拟服务器的CPU利用率都很低,也就是说整个虚拟化环境中CPU并不是计算资源的瓶颈,但是也有几台是CPU利用率很高同时内存利用率很低,这些机器是需要进一步的分析如何对他们合理分配资源。

4. 总结

本文主要以VMware虚拟化环境为例,讨论了ITM监控解决方案中虚拟机和虚拟化主机的CPU,内存利用率数据的获得和分析。这里的利用率数据是基于历史记录中某一天的数据,如果综合考虑某一段时间的利用率情况,就可以生成虚拟机和服务器主机的利用率的发展趋势,从而可以用来衡量IT部门在计算资源利用率的提高方面所取得的成效。

基于ITM监控数据的VMware虚拟化环境资源利用率的分析,不仅可以考虑CPU,内存的数据,还可以包含硬盘,网络等方面,在ITM数据仓库中对应的属性组分别是“VM磁盘”属性组(KVM_VM_DISK_D),“VM 网络”属性组(KVM_VM_NETWORK_D),“服务器磁盘”属性组(KVM_SERVER_DISK_D)和“服务器网络”属性组(KVM_SERVER_NETWORK_D)。更多的VMware虚拟化环境中属性相关信息,可以参考VMware VI Agent 监视代理用户手册的 “属性参考”部分。

ITM同时还可以支持其他虚拟化环境的数据收集,下面简单列出了部分有关属性组的信息供参考:

KVM虚拟化环境:KV1_HOST_CPU,KV1_HOST_MEMORY,KV1_VIRTUAL_MACHINES

Citrix Xen虚拟化环境:KXI_HOST_CPU,KXI_HOST_VMS,KXI_HOST_DETAILS

 Hyper-v虚拟化环境:KHV_HYPER_V_VIRTUAL_MACHINE_SUMMARY,KHV_PROCESSOR, KHV_MEMORY,KHV_DISK,KHV_HYPER_V_VIRTUAL_SWITCH

链接已复制,快去分享吧

企业网版权所有©2010-2025 京ICP备09108050号-6京公网安备 11010502049343号