Windows Media Load Simulator(WMLS)有两个主要的用途:作为极值或者压力测试工具和在线监视器。
1 极值和压力压力测试:你能够在达到期望的极值压力条件下测试离线的服务器,并且分析结果。之后,逐渐增加压力并注意服务器的性能表现和流媒体的播放质量,逐渐达到服务器容量的极限。你能够使用测试结果来设置服务器的最大客户连接数。你可以使用WMS的管理界面来设置最大客户数,最大带宽占用和最大的文件比特率。
测试结果会典型的揭示服务器的问题,CPU,内存或者硬盘或者网络带宽。举例来说,一个速度慢的CPU会导致很高的CPU使用率和相应的很少用户连接数,并且导致大量挂起的连接和流媒体错误。Late Send计数器同样会说明低俗的CPU。一个低速的硬盘驱动器会导致在压力下的late send。但是,当服务器在传输实时的媒体内容的时候,数据必须在传输的时候是可用的。
2 在线监控 当服务器正式上线使用的时候,你能使用一、二个用户不间断的连接到你的服务器来监控服务器的总体性能情况。你也可以创建一个简单的程序或者脚本来自动产生警告日志或者信息。比如,开开眼创建一段简单的脚本用来当WMLS监控到一个流媒体错误的时候发邮件给你。
依据下面的过程来使用WMLS,从而帮助你判定和维护服务器的性能,包括一下几个方面
1 判定客户场景
2 创建测试源文件
3 配置极限测试
4 配置WMLS
5 进行测试
6 配置在线监控
1 判定客户场景
在进行测试之前,你需要判定典型的极限客户数量和典型的客户场景。典型的极限客户数量指的是在常规的情况下能同时进行流媒体传输
的最高用户数。客户场景则是基于传输的内容的类型和传输方式。客户的行为(比如搜索播放,打开和关闭流媒体)和授权需要额外的服务器资源,这些也是需要在一个完整的模拟测试中要考虑到的。因为你在真正的上线之前是不能够判断服务器的极限的,你应该在进行模拟测试的时候将你的期望值设置要比你实际感觉的要稍高一些。当你判定客户数量和场景的时候请考虑以下的因素:
a、同时连接数量:同时连接到服务器的平均客户数量和最大客户数量是多少?
b、广播和点播的混合:你提供的内容的类型?多少是广播?多少是点播?
c、用户行为: 用户会如何播放内容?你期望用户是从头播到尾呢还是只是浏览内容?
d、混合比特率内容:多少内容是用混合比特率来编码的?
e、认证:是否需要用户提供用户名和密码来访问内容?
2 创建测试源文件
如果能够的话,尽量使用真实的媒体文件来做测试。如果你暂时没用创建任何文件或者你是在线直播,创建临时的文件内容,它要能够尽量的模拟真实的比特率和长度。比如,如果你计划使用混合比特率来直播一个事件,则需要按照真实的配置来编码一个直播的临时流。更进一步,编码的内容要包括实际现场的一些行为。比如,如果你要直播一场音乐会,那么现场可能会频繁的使用到手持摄像机,快速切换和灯光效果等,这时可以使用一个类似的音乐会磁带来作为模拟的直播源。如果你的内容包含几百个30s的新闻采访,这时你可以创建2到3个类似内容的文件,然后进行复制。测试文件应该包含和实际内容一样的文件类型、数量、屏幕场景和变换,因为这些视频的这些方面会直接影响大比特率。
用户的行为有一部分是由文件的特性来决定的。比如,如果你的站点拥有很多短片段,一个用户很有可能会去打开关闭很多的文件并且浏览或者搜寻文件的不同部分。用户可能会搜索一些片段信息。当一个过载的服务器上,用户的过多的搜寻和浏览操作会导致late send和高的CPU使用率。如果内容是直播的,硬盘的访问将可以被忽略。但是,你可能会在一个低俗CPU或者低内存的服务器上遇到错误或者增长的late send rate。用户可以随时访问点播的内容,当广播正在进行的时候,客户对服务器的压力会经常高一些,因为访问集中在这段时间内。
传输混合比特率的内容和认证用户去访问被保护的内容也会给服务带来额外的压力。WMLS能够在这两种情况下模拟进行压力测试。
3 配置极限测试环境
极限和压力测试应该在离线的情况下使用封闭的局域网环境进行。WMLS可以创建与真实情况下相同的数量的客户连接对服务器压力和网络负载。如果你在一个真实的网络环境下进行压力测试,那么测试有可能占用所有可用的带宽并阻止真实的客户来访问服务器。而在一个封闭的局域网内进行极限测试,你可以避免用户遇到网络或者因特网的中断,并且你能够按照需要随意增加比特率来测试服务器和本地网络硬件。下图展示了一个典型的局域网布局图。
Figure 1. Layout of closed LAN for stress testing
这个布局图假设了一个典型的测试场景:一台能够承受1000个同时播放28.8kbps的流连接的Windows Media服务器,5台连接到服务器并运行WMLS的客户机,每个客户机模拟运行200个客户连接。布局图同时也包含一个远程的编码计算机,用来进行流媒体直播和一个远程的存储驱动器,用来存储点播的文件数据源。
运行WMLS的客户机必须流畅的处理一定数量的客户连接。连接的数量不仅取决模拟的客户数,也与内容的比特率和网络带宽有关。比如,200个用户连接到28.8kbps的流媒体上会占用5.6Mbps的带宽,这个在100M的以太网环境中很容易承受。但是,如果文件内容以300kbps的速度传输,那总共的带宽将会是60Mbps,这已经很接近网络的极限了。除了要确保你的网络环境能够承受相应的比特率,你也应该使用系统监视器来检查客户机的CPU和内存使用,确保使用率要低于50%。一个超载的客户机会产生影响测试结果的流播放错误。
快速的服务器能够承受更高的流媒体连接数量。比如,一个拥有4个处理器和1G内存的服务器能承受几千个用户同时连接。这种情况下,你应该增加更多的模拟客户连接或者使用更快的客户机。通常的经验是每一个Windows Media服务器使用3个客户机。3:1的比例适用于客户机的配置和服务器一样。如果你使用的客户机的配置比服务器低,那么你需要更多的客户机。一般来说,在使用WMLS进行测试的时候要保证你的网络和服务器配置正确。
你可以使用2003的网络负载均衡集群来增加你的服务器的稳定性和可靠性。一个负载均衡的系统是一组服务器的集群,但是对客户来说是一个单个的服务器。可以像测试单个的服务器一样来测试集群的服务器。
你也可以按照Windows Server 2003 Scalable Networking Pack来释放CPU周期来运行应用相关的任务,比如支持很多的客户连接和增加网络吞吐量。(Scalable Networking自动包含在Windows Server 2008中)
4 配置WMLS
a、启用Windows Media服务器进行负载测试
在WMS系统的根目录下创建一个名为WMLoad.asf的文件,这样是为了保护你的服务器避免非授权的负载测试。
b、配置具体的Windows Media服务器信息
c、配置具体的数据源
d、配置客户配置文件
e、添加授权
f、设置测试时间和启用日志
5 进行测试
a、运行极限测试
至少运行测试2分钟,对下面的信息进行检查:
关注WMLS的计数器统计信息
注意达到极限客户数的丢失包的数量
检查测试错误数量计数器
b、分析结果
c、进行压力测试
6 配置在线监控
在获得一个稳定的服务器配置后,你可以将你的系统放到生产环境并继续使用WMLS进行在线监控。你可以配置两天客户机,一台在局域网来连接服务器,一台通过因特网连接服务器。如下图:
使用在线客户机监控的目的在于确保服务器在生产的环境下工作正常。你不应该通过因特网或者有其他人真正使用的网络来对生产环境的在线服务器进行压力测试。WMLS会很快的消耗所有的带宽,这样会影响其他真实客户的使用。在线监控是为了确保服务器和网络的性能正常,通常是通过一个典型的客户机来连接服务器。在离线的情况下使用WMLS得到的测试结果对在线的服务器同样有效。
你也可以通过一下简单的程序或者脚本累增强在线客户监控,这需要对客户机的注册表进行配置。具体的内容请参看Windows Media帮助文件。
End