[发明专利]一种分布式负载发生器的实现方法及其系统有效
申请号: | 201310320221.2 | 申请日: | 2013-07-26 |
公开(公告)号: | CN103414649A | 公开(公告)日: | 2013-11-27 |
发明(设计)人: | 陈兴振;贾禛;王磊;詹剑锋 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | H04L12/801 | 分类号: | H04L12/801;H04L29/08;H04L29/06 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100190 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 负载 发生器 实现 方法 及其 系统 | ||
技术领域
本发明涉及分布式负载发生器的实现技术,特别是涉及一种分布式负载发生器的实现方法及其系统。
背景技术
随着基于Web的互联网应用越来越广泛,越来越多的工作都依赖于高质量的Web服务器。数据中心的应用也多以Web的方式提供服务。研究如何提高Web服务器的性能和服务质量需要模拟互联网上的用户请求。负载发生器可以模拟互联网上的大量用户请求,观测Web服务器对大量的、变化范围很大的负载的处理情况。通过负载发生器可以评测Web器服务的性能和质量,而高强度的真实负载对于Web服务器的评测至关重要。据实验分析发现人工合成的负载在性能上比真实负载要低两倍,参见文献“席华锋,高通量计算机典型服务类应用负载与体系结构特性分析”。如何利用负载发生器产生高强度负载的同时保证负载的真实性、精确重放负载成为困扰Web服务器性能测试的难题。
负载发生器的一般工作原理如图1所示,在互联网上,客户端与服务器是不对称的,数据的传输量也是不对称的。一个服务器服务于多个客户端。负载发生器模拟的情况要与互联网的真实情况一致。一个负载发生器可以模拟多个用户,向一个服务器发送请求。
在图1中,负载发生器模拟多个client(客户端)向Server(服务器)发送请求,一个个请求组成的请求队列等待Server进行处理,Server处理后对client进行应答响应。
现有的比较常用的负载发生器包括WebStone、Fanban、Httperf、Flood、SPECWeb、S-Client等。WebStone是由SGI开发的网络测试软件,运行在UNIX环境下。Fanban是Sun Microsystems用java1.5+编写的,是一个用于开发和运行benchmark的开源工具。Httperf是HP公司开发的一款Web服务器性能测试工具,能够灵活的产生各种类型的Web负载。Flood是Apache Http工程包含的Http-Test子工程的一个测试工具。SPECWeb标准是由SPEC公司组织开发的,用于测试评估Web服务器性能的指标,到目前为止已经推出了SPECWeb96、SPECWeb99、SPECWeb2005、SPECWeb2009等标准。S-Client是Rice大学开发的一个Web服务器性能测试工具。
WebStone是通过模拟多用户行为在Web服务上产生负载的,其功能是从Web服务器上获取特定的文件。WebStone采用一个WebMaster程序控制多个WebClient程序,可运行在客户机上或者任何独立的计算机上,而且为了对服务器产生足够的负载,可以将WebClient分布在同一网络中的不同客户机上。WebStone是一种压力测试工具,只是尽可能多地产生请求序列,无法保证产生负载的真实性,每次产生的负载不一致。
Fanban负载发生器包括Master和Driver Agents两个部分。Dreiver Agents通过与Master通信来创建Agent Thread,通过Agent Thread来模拟单个用户的行为。Fanban的缺点是只能生成模拟的用户查询,无法生成真实的用户行为,不能进行精确的负载重放。
Httperf通过多线程模拟用户的并发访问行为,来测试服务器的负载能力,比如服务器能同时承受的连接数。由于设计和实现的原因,不管采用何种重放方式,Httperf都会先将日志记录读入,内存占用很大。此外,Httperf实现的计时器极其消耗CPU,在日志较多的情况下,会占用100%的CPU时间和大量内存。Httperf由于采用的是模拟多线程的方式,无法对负载进行控制,不能进行精确的负载重放。
SPECWeb负载发生器的基本原理是按照某种模式持续不断的访问Web服务器,测试服务器的吞吐率、最大连接数、响应延迟等参数,通过这些参数来评估服务器性能。SPECWeb的负载产生器是专门为SPECWeb的数据集设计的,而这个数据集和Web搜索引擎完全不同。SPECWeb按照概率模型生成负载,可重复性差,无法进行精确的负载重放。
S-Client是由n个客户机连接到被测服务器,每个客户机运行一定数量的S-Client进程。客户机通过一个路由器与被测服务器连接。这个路由器必须具有足够的能力通过预计的最大流量。路由器的目的是在测试环境中引入人工的延迟来模拟WAN中的延迟。S-Client仅仅只是一个压力测试工具,功能过于简单。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310320221.2/2.html,转载请声明来源钻瓜专利网。