您现在的位置:首页 >关于我们 >行业新闻 >VMware架构下虚拟机的性能监控技术
VMware架构下虚拟机的性能监控技术
时间:2011年2月22日
虚拟环境下,传统基于硬件的性能监控代理端不能提供准确的结果,甚至还会影响到整体性能。好在VMware架构下可以采用其它方式来获取关于整个架构的详细信息。
从操作的角度出发,对性能和其它数据的监控是非常重要的。多数客户借助硬件及性能监控代理端实现对硬件和服务器服务器租用健康状况的实时检查。
尽管硬件代理端可以监控ESX宿主机的状态,却无法保证虚拟机的健康。因为虚拟机硬件完全是基于物理平台基础上的。另外多数代理需要跟特殊的芯片通讯,而虚拟机内没有这样的芯片,所以使用硬件代理通常会影响虚拟机性能。
硬件客户端最佳实践
不要在虚拟机安装硬件代理程序,这会导致显着的性能问题。而在决定是否需要购买新的ESX主机以及如何在ESX宿主机之间做好负载均衡等问题时,性能监控结果成为极其重要的参考。虽然在ESX主机间的负载均衡可以自动进行,绝大多数的跨主机负载均衡还是手工完成的,毕竟决定是否需要在宿主机之间迁移虚机的因素有很多方面。
也许有人会提出DRS(Dynamic Resource Scheduling)功能可以实现所有宿主机之间的负载均衡,但是DRS实际上只在CPU发生争用的时候启动迁移。如果您的环境中从不发生CPU争用,不管DRS如何设置,依然需要依靠手动来平衡虚拟机负载。
首先一点要理解的是向宿主机添加额外的虚机将影响到整个ESX主机的性能,有时影响很小,而某些情况下会有显着影响。第二点是了解性能监控工具在虚拟机内是如何运行的。例如Windows系统中它通过保留一个计数器,遇到空闲周期时计数增加一位,最后从整个内部CPU时钟周期内减去相应的时间片数量。
由于虚拟机在空闲时处于休眠状态,所以这种计算是非常不准确的,资源占用率结果会比实际值偏高。而且通常虚拟机数量要比CPU个数或核心数量多,导致它们之间需要共享CPU周期。在虚机数量增多时,每台虚机获得的CPU时间片就会变短。
这样,在两次使用CPU之间的间隔时间越来越长,也导致了更长的CPU周期。而监控工具是基于CPU周期来计算性能和时间的,收集的数据就产生了很大的偏差。当我们希望可以把系统调整到期望状态时,就要借助通过VMware vCenter或其它性能管理工具获取的多种基本数据集进行。
在得到相应的基数后,内部的虚拟机性能工具可以决定是否性能受到了影响。不过它提供的并不是绝对数字,而是基于基数上的改变率。例如,假设从虚拟机内获得的CPU占用率基数大约在20%,当突然显示40%的时候,我们可以知道在原有基础上发生了2倍的变化。这并不代表原始值是20%,它可能是某一个具体数字。
而且,即使显示出该虚拟机的CPU占用率超出一倍,对物理服务器的占用率也不是翻倍关系。因此,如果想获得关于虚拟机的性能数字,需要一些不在虚拟机内部运行的软件做参考。VMware vCenter或第三方工具,如Vizioncore vFoglight、基于命令行的esxtop或者是远程CLI的resxtop,都是运行于虚拟机之外的可用于衡量虚拟机和ESX主机性能的工具。此外,它们都可以提供ESX宿主机情况的整体视图。
关键是要意识到当通过vCenter或其它某个工具观察到ESX主机的占用率长期位于80%以上的时候,需要增加新的ESX主机还要把原主机上的负载进行迁移。同样的机制也适用于需要衡量网络和存储带宽资源的时候。
通过vMotion技术可以在不停机的情况下跨宿主机进行虚拟机迁移,因此ESX主机的负载均衡可以每天进行,甚至是在一天内分时段进行。虽然过程可以是自动的,手动调配vMotion和Storage vMotion还是可以对系统和容量有更好的了解,以备在需要时重新进行平衡。
例如,如果ESX主机的CPU占用率达到95%,需要使用工具找出引发该问题的虚拟机;接下来,需要通过vMotion把该虚机迁移到空闲的或压力较小的主机上。如果这种迁移总是发生,最好可以把这台虚拟机固定到某台压力较小的主机上。这也是建议配置N+1模式主机原因。
增加虚拟机部署会增加CPU占用率。在下一章中对部署方式有详细的介绍,不过我们建议创建一个可以访问所有LUN的调度服务器服务器租用。该服务器可以用于在部署新虚机时先进行调试,直到该虚机满足可以真实的生产环境服务器上运行所需的前提条件后,再通过vMotion迁移。
例如,有个用户希望可以衡量在现有的网络配置情况下,加入ESX主机后各个虚拟机的性能情况。为达到该目的,在解释了CPU时间周期的问题后,我们规划出了具体执行方案。
这里使用了两个工具:VMware vCenter和esxtop,可以通过服务器控制台运行或借助vMA以批处理方式(esxtop -b)。用于性能问题分析时,esxtop是最佳的工具,不过它会产生大量的数据用于稍后绘制图表。vCenter每隔五分钟或更长时间取一个平均值用于数据存档,它的实时数据收集间隔为20秒。Esxtop使用的是实时数据而不是平均数,采集间隔默认为5秒钟,最小间隔可以设为2秒。
该方案通过两个工具衡量每台虚拟机在运行各自应用时的性能。ESX主机的性能实际上很大强度上受到每台虚拟机内的应用影响。意识到这点很重要,在讨论性能问题时不要只盯着某台虚拟机,而是对整个宿主机进行通盘考虑。
这也是为什么VMware通常不允许私自发布性能数据,每次结果根据负载的不同差异很大。最好的办法是用自己的应用来亲自测试和分析,因为其它公司的虚拟应用测试结果对另一家公司而言毫无意义。即使是应用程序相同,每个环境的负载情况也会千差万别。
如果您依然希望可以横向对比ESX主机性能,VMware开发了用于多台宿主机和hypervisor平台间对比的通用负载模型VMmark。不幸的是,VMmark还没有成为标准。