桌面虚拟化之压力测试篇

传统VDI的部署方法论一般只按照经验值来评估处理能力,存储响应速度,网络要求等估算用户负载,此方法通常无法真正评估虚拟化系统在生产环境下的实际负载。实际负载应该能够准确代表当前桌面用户的实际工作习惯,也就是他们使用的应用程序、使用的频率、以及使用的“强度”等。

因此我们需要一个虚拟桌面压力测试工具,以产生一个针对桌面虚拟机的各种应用特点可调的现实的工作量,并收集结果数据(集群或节点的CPU使用率、内存使用率、存储和网络等)用于分析,以确定一个特定的环境是否适宜运行虚拟桌面系统。

这样的工具称为桌面参考架构工作量模拟器(以下简称RAWC: Desktop Reference Architecture Workload Code),已被许多用户用来模拟各种用户类型的应用负载。它可以被配置为模拟轻型、中型或重度工作量的虚拟桌面使用者的特征,包括应用在典型的Windows桌面环境中的工作类型。RAWC可用于服务器和存储性能评估,验证系统整体配置和可扩展性,以及进行研究和概念证明。

RAWC的工作负载运行在每个桌面虚拟机的Windows 7或XP客户操作系统上,一般这些虚拟桌面运行在一个或多个ESX主机平台。 RAWC工作负载根据一组函数来执行一系列常见的桌面应用动作,包括:微软Office、Adobe Reader、McAfee病毒扫描、Windows媒体播放器、Java和7 – Zip等应用的行为模拟。这些应用程序可根据策略随机选择操作,模仿那些典型的桌面用户工作负载,包括打开、保存、关闭,最小化和最大化窗口,查看HTML页面,插入文字,插入随机单词和数字,播放幻灯片,观看视频,运行病毒扫描,发送和接收电子邮件,以及压缩文件等。

RAWC工作负载度量工具在使用时可登录共享网络文件夹以使用同一的配置文件,通过RAWC创建GUI和应用程序的写入/打开/关闭的时间并记录发生的任何错误。各种测试变量可以通过RAWC图形用户界面进行配置,包括可配置启动延时以用于创建所谓的'启动风暴',以及配置操作密度(应用程序操作之间的延迟)等。

通过测试的应用程序和配置变量的组合,既可以增加或减少所部署的虚拟机和VMware ESX服务器集群的工作量。而其目的在于准确评估每个特定环境的虚拟桌面解决方案能够支撑的可运行的虚拟机准确数量。

除了运行本地应用程序,RAWC也可以运行在本地或远程站点托管的VMware ThinApp应用程序。

同时RAWC支持Active Directory组使用。在进行大规模部署的评估时会发现该功能非常有价值。基于虚拟机所隶属的Active Directory组成员类型,可以通过RAWC为该组成员配置专门的工作负载测试环境。这使得不同组别的虚拟机能够运行不同的工作负载来模拟一个更现实的大规模的工作环境。

考虑到RAWC的上述特性与优点,在压力测试中我们即采用了这个工具以对软硬件系统进行有效的事前度量与评估。

通过在实施基于VMware View的管理网客户端桌面虚拟化解决方案压力测试后,可以预期获得如下收益:

(1) 提高资源利用率

根据有意义和依据的度量结果,对客户端资源进行更为有效的统一调配和管理,实现服务器端计算、存储、网络等资源利用的最合理有效规划。

(2) 准确评估成本与回报

在准确度量的基础上,能够更合理准备的评估上线虚拟化桌面系统的采购、建设成本,以带来更好的系统投资回报。

三、测试环境

3.1 压力测试环境工作原理图




    		    桌面虚拟化之压力测试篇

RAWC工具的组成包括以下部分:

负载会话启动虚拟机(Session Launcher VM):必须设置一个或多个负载会话启动虚拟机以支持启动桌面负载会话。每个负载会话启动虚拟机可以支持启动20个桌面负载会话。如果你需要模拟100个用户的在线访问负载,你需要创建5个此类型的虚拟机。

目标桌面虚拟机 -运行工作负载:RAWC代码驻留在每个虚拟桌面上,以运行策略定义的各种工作负载。

RAWC控制器虚拟机:RAWC控制器管理RAWC GUI配置界面以及存放负载配置和日志文件的共享网络文件夹。RAWC控制器可以是物理或虚拟机。

RAWC工具在设计时注意了以下几点:

•简单-最小的部件和软件安装包数。

•易于使用-以图形用户界面用于配置的工作负载,创建日志文件夹,启动并清除配置文件。

•可扩展性 -根据测试要求,可测试的虚拟机数量不限。

•Active Directory支持-能够根据确定的组织成员,找到与其匹配的正确的测试配置文件。

•基于策略的工作负载- 配置合理的工作负载作为度量的基础。

RAWC的负载配置变量等如下简述:

Active Directory组

RAWC如果对Active Directory群组进行配置,将据此查询虚拟机的所属成员的活动目录组,然后找到正确的配置文件,并开始测试。此功能允许工作负载定义基于虚拟机的活动目录组成员,从而使多个相同的工作负载运行在相同的测试场景中。对于大规模的测试,这将具有更实际的代表性。例如:某些部门组成员需要经常访问电子邮件,互联网浏览器和Adobe Reader软件,但是,财务部门的日常工作可能更多的需要Excel等。

RAWC图形用户界面(GUI)

RAWC图形用户界面用于配置RAWC。图形用户界面让使用者能够方便的保存和检索测试变量,创建日志文件夹,并定义在 Active Directory组基础上的独一无二的工作负载。此外,可以使用GUI来增加或减少工作负载或调整用户行为(如每分钟打字的速度等)。

配置标签

配置选项卡包含两部分,通用和工作负载,如下所示。配置选项卡包含测试、登陆信息,电子邮件变量,以及为每个Active Directory组选择的应用等。 


    		    桌面虚拟化之压力测试篇

应用程序启动顺序

此功能允许定义作为工作负载应用程序的运行动作,以确定这些动作是否以一个随机或静态顺序执行。

随机顺序

随机顺序是RAWC标准模式。采用随机顺序应用程序动作时,应用程序工作负载将在不同的虚拟机以不同的顺序运行。

当运行随机顺序的应用负载申请时,需要了解以下几点:

•应用程序运行在一个随机的顺序。

•根据所选的人数,根据测试虚拟机的总数,应用程序负载在不同启动延时生效。

•在应用程序之间的随机延时(应用程序启动延迟)是即时计算的。当多个应用程序负载运行在随机模式下时,随机延迟按照用户选择的上限在使用中即时计算。

静态顺序

静态顺序即是将多个应用程序负载运行在一个静态已定义顺序上,所有的虚拟机将运行完全相同的顺序,包括应用程序负载的运行顺序,以及多个应用程序负载之间的固定延迟运行。此功能使测试者能够一遍又一遍地重复测试。当运行静态顺序的应用负载申请时,需要了解以下几点:

• 将用完全相同的顺序运行每个虚拟机上的每个迭代(下文)的应用。

• 没有启动延时生效。在这种情况下延时已无关紧要,因为完全相同的应用程序在每个虚拟机上按相同的顺序运行。

• 在应用程序之间的延时(应用程序启动延迟)现在是一个固定的延迟时间。用户定义的上限将成为成为多个应用程序之间的实际延迟。

应用程序启动延迟

应用程序的启动延迟用于增加或减少服务器上运行的应用程序负载(更加密集的运行或其它)。请注意以下几点:

•当运行应用的随机顺序申请时,为应用程序选择的运行延迟数将成为随机延迟的上限。例如,随机延迟如果选择120秒为上限,其实际随机延时可以即时计算为1秒或119秒或任何在120秒之间的时间。

•当运行应用的静态顺序申请时,对选定的上限运行延迟,将成为实际运行的应用程序负载之间的固定延迟。

•通常,更大如果测试环境中的虚拟机数量越多,则建议选用较大的一个上限数字。

通过选择较小的上限数字,可以生成通过使应用程序运行更密集而因此产生较重的工作负载。

虚拟机的被测总数

压力测试下使用的虚拟机总数,可用于判定虚拟机的”开始延迟” 。此功能能够模拟一个正常的登录场景,或者用于创建一个更加密集的'启动风暴'。配置'启动风暴'场景时,会发生更多的虚拟机同时启动且他们的工作负载更加接近,从而在服务器上创建一个较大的负载峰值。一个'启动风暴'的场景很可能实际发生在早上的首次系统登录或者系统刚刚从停电中恢复。

•一个正常的登录场景允许虚拟机在一段时间内逐步运行他们的工作负载。根据以下描述,从最接近您进行测试的虚拟机数量中选择对应的场景。

-10个测试虚拟机 - 没有启动延时

-64个测试虚拟机 - 0到12分钟启动延时

-250个测试虚拟机 - 0到24分钟启动延时

- 500-1000个测试虚拟机 - 0到54分钟启动延时

测试模式

图形用户界面(GUI)允许选择测试迭代的次数或持续的时间(分钟)一RAWC测试将据此运行相应数量的工作负载。

测试持续时长

图形用户界面(GUI)允许选择你想要的虚拟机工作负载运行迭代次数。如果您对应用程序的打开和关闭时间有兴趣,你会想运行至少三个迭代——应用程序需要较长时间才能打开第一次,到了第二次迭代,由于应用/页面已被缓存,其打开时间将大大缩短。

时间

持续时间允许您选择想要进行压力测试运行的时间。您不必再估算有多少次迭代,取而代之以进行4小时甚至8小时的压力测试运行。当使用持续时间时,需要了解以下几点:

•虚拟机不会在完全相同的时间或准确的持续时间上结束。

•在随机顺序(或静态顺序)应用程序延迟之前和之后,将进行时间的检查。

•当应用程序正在执行时,时间检查将发生在一个特定点,例如:

一时间检查发生在电子邮件发送之前或之后,但不会在电子邮创建时。

一时间检查发生在幻灯片演示之前或之后。

•当持续时间已经得到满足时,日志文件被关闭,同时在虚拟桌面上任何已打开的应用程序将关闭。

注销用户

测试者现在可以通过图形用户界面,指定如果用户登录的虚拟机进行工作负载测试后是注销退出还是仍然登录。


    		    桌面虚拟化之压力测试篇

3.2测试结论及分析

以下我们以模拟40个并发用户的访问负载,来对虚拟桌面平台进行压力测试。

主要模拟用户日常办公的word应用和IE应用。同时开启上述的应用,并随机的打开,切换应用。

在word中,模拟用户输入文字 ,插入图片,保存文档,删除文字,关闭、开户word等

在IE中,将模拟用户打开IE,拖动IE滚动条,关闭、打开IE窗口等。

对于普通的日常办公用户而言,上述操作具有非常的普遍性和适用性。30个每隔60秒进行一个用户的登录,每个用户模拟上述的WORD及IE操作达20分钟,完成后自动注销桌面。

管理员可以监测VMware Vcenter来查看包括CPU/内存/网络/磁盘响应等的性能数据及趋势。

在一台2CPU,24G内存的HP服务器机器上,创建40个虚拟机(1VCPU,1G内存,40G虚拟磁盘),并进行压力测试,总体上看,除了内存占用率到80-90%以外,其他各项指标均在可控范围内。

本文出自 “桌面虚拟化杂谈” 博客,请务必保留此出处http://virtualbus.blog.51cto.com/345374/497541

更多相关文章
  • sysdba权限的登录测试:
  • 自定义事件 什么是自定义事件? 自定义事件:这要是跟函数有关系,就是让函数能够具备事件的某些特性 为什么要使用自定义事件? 有利于多人协作开发代码,一同开发不冲突 如何去挂载自定义事件与事件函数? 1.事件绑定的好处是什么? 首先要明确一点,自定义事件是由函数组成,也就是函数调用.先来简单了解事件绑 ...
  • python模块介绍- binascii:二进制和ASCII互转以及其他进制转换 2012-08-01磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.com qq 37391319  #版权所有,转载刊登请来函联系 #自动化测试和python群组: http: ...
  • 1.下载和安装wxPython.需要注意的是选择的wxpython版本需要和python的版本相对应.具体的安装过程就不赘述了. 2.使用wxPython进行GUI应用程序的创建:开始需要导入wx模块:import wx.编写wxPython程序的方法很多,但不可避免的事情是创建应用程序对象.基本的 ...
  • svchost.exe是什么进程?svchost.exe 是用来启动系统服务的,所以某个 svchost.exe 占用内存过大,可能就是它启动的那个服务占用内存过大,所以只要停止并禁用那个服务就行了.下面分享svchost.exe占用内存过大的解决办法 svchost.exe 是用来启动系统服务的, ...
  • 我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不同的操作系统.不同的浏览器.不同的网页字符集,将导致完全不同的编码结果.如果程序员要把每一种结果都考 ...
一周排行
  • Virtualbox下fedora访问windows下的共享文件夹方法   今天想尝试tr命令删除windows文件下的"^M"符号,考虑挂载windwos下的文件夹到虚拟系统下,   发现只执行 ...
  • 网页过滤 内置全球最大中文URL数据库,对用户访问的网页进行精确分类,并根据管理需求对不良网站进行过滤封堵: 支持基于网站类别.URL关键字.文件类型等多种条件的灵活管理,并能够对访问网页内容进行阻断.记录以及网页快 ...
  • 今天是 22 岁的最后一天.几个月前,我从沃顿商学院毕业,用文凭上"最高荣誉毕业"的标签安抚了已经年过半百的老妈,然后转头辞去了毕业后的第一份工作,跟一家很受尊敬的公司.还有 150 万的年薪道了 ...
  • 北京移动昨日宣布推出双用SIM卡,可兼容普通SIM卡手机和Micro-SIM卡智能机.据介绍,北京移动全品牌用户持Micro-SIM卡智能机和原SIM卡即可在各大营业厅免费更换"双用"SIM卡.新 ...
  • 变量存储类别 变量声明/定义的一般形式: 存储类别 数据类型 变量名 存储类别指的是数据在内存中存储的方法.存储方法分为静态存储和动态存储两大类.标准C语言为变量.常量和函数定义了4种存储类型:extern.auto ...
  • 使用coco2d-x读去Tiled制作的地图,当第一个图层被图块1填满后,在用图块2在图章刷覆盖在图层1上,就会报错!同样,当在图层2放置图块3建筑物后,在将图块4建筑物放在图层2上就会报错!这是为什么?如果一个图层 ...
  • less 命令   空格或者 ctrl+f  前进一屏    ctrl+b  回退一屏 回车    前进一行 /String 查找含有string 字符串的页 ?String  同上 <反方向查找> n ...
  • 都是是很专业,并钻石得很深的内容,但,有些事情是交替进行着的深入,太专注于VIRTUAL BOX就必要要牺牲其它的东西.
  • 收集一些编程(c++)的时候应该变成"本能"的不用去想的习惯性的东西:写new的时候就去写delete,如果一些不用delete的东西(gc管理的东西),注明为什么不用deletefor里面用++ ...
  • Sqoop是什么?        sqoop是一个用来将hadoop和rdbms(mysql.oracle.postgres)的数据进行相互迁移的工具:他可以将rdbms的数据导入到hadoop的hdfs中,也可以将 ...