可以方便测试终端用户系统启动时间;
可以模拟多种用户类型(比如普通使用办套件的用户,播放 flash 视频、播放 WMV 视频、播放高清视频等高端用户)的体验值;
可以模拟多种终端用户的组合类型,切近真实情况;
可以实时监控所有终端用户的行为状态;
性能测试指标
虚拟桌面流服务器的 CPU,内存,网络吞吐量,磁盘读写
云桌面系统的 CPU,内存,网络吞吐量,存储磁盘读写
云桌面系统运行程序的响应延迟时间(毫秒)
云桌面系统播放媒体(音频,视频)的体验水平
设计如下图 3 所示,STAX 解析 XML 任务文件,远程驱动安装好 STAF 的机器并发或者顺序执行 XML 中定义的一系列任务(顺序执行或者随机执行,以及不同 workload 的比例也都可以实现),这些任务的具体内容(包括用户的思考等待、桌面和应用程序的操作等)都由 Autoit 脚本完成,STAX 主要负责任务的调度和工作负荷的构建,其在调用外部脚本的时候能够传入一系列参数到 Autoit 的命令行接口中,因而既可以方便地调配虚拟用户数的梯度增长或者并发数量,又可以控制每个虚拟用户的行为(循环,条件判断等)。
图 3. 性能测试设计
查看大图。
测试场景
如下图 4 所示,本测试使用 ESX 创建的虚拟机来模拟瘦客户机(也就是虚拟的终端用户)。因而所有的虚拟机便于统一配置和管理。
图 4. 测试场景
如图 5 所示,该测试环境的流服务器采用基于流(Streaming)的技术把不同的操作系统或者应用程序分发到客户端(无盘或者有盘),测试中会预先用真实的瘦客户机执行测试,测试结果作为基准值,然后跟虚拟机的测试结果进行对比,确保结果一致性,从而保证用虚拟机模拟终端的真实性。
图 5. 测试环境
测试准备
第一步:安装配置
1. 先根据安装向导安装 STAF(默认安装在 C:\STAF)
2. 然后下载 STAX,找一台性能测试中的主控制台机器 ,在其 C:\STAF 下新建目录 services,把解压的 stax 拷贝到 service 目录下即可,启动 STAFProc 进程,然后运行 C:\STAF\services\stax\STAXMon.jar ( 注意设置好 java 路径,STAX3.4.5 直接运行 STAXMon.jar 即可打开 STAX 的程序界面 )
3. 配置 C:\STAF\bin\STAF.cfg, 在默认配置的基础上修改几处即可:
# Turn on tracing of internal errors and deprecated options trace enable tracepoints "error deprecated" # Enable TCP/IP connections interface ssl library STAFTCP option Secure=Yes option Port=6550 interface tcp library STAFTCP option Secure=No option Port=6500 # Set default local trust trust machine local://local level 5 # Add default service loader serviceloader library STAFDSLS |
# 需要配置的地方,*.*.*.* 可以设置为单个 IP 或者 IP 段,且每个远程的 STAF 机器也需要配置
# to trust all machines, can also use specific IP address here for # security consideration TRUST MACHINE *.*.*.* LEVEL 5 #OPTION JVM=C:\Program Files\Java\jdk1.6.0_22\bin\java.exe SERVICE STAX LIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAX.jar OPTION J2=-Xmx384m SERVICE EVENT LIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAFEvent.jar SET MAXQUEUESIZE 10000 |
第二步:优化配置
要使 STAX 满足高并发的性能需求,必须对 STAF/STAX 做优化配置:
########################## STAF performance tunning ################ # Increase the CONNECTIMEOUT to 30 seconds for the tcp interface, specify: INTERFACE tcp LIBRARY STAFTCP OPTION SECURE=No OPTION PORT=6500 OPTION CONNECTTIMEOUT=30000 # Increase the CONNECTTIMEOUT to 30 seconds for the ssl interface, specify: INTERFACE ssl LIBRARY STAFTCP OPTION SECURE=Yes OPTION PORT=6550 OPTION CONNECTTIMEOUT=30000 # increase the CONNECTATTEMPTS from a default of 2 attempts to 3 SET CONNECTATTEMPTS 3 |
第三步 : 编写脚本
1. 下面需要编写 STAX 并发调度的 XML 文件,目标如下图所示:
图 6. 实现 Ramp up 的 workload 图示