负载均衡和高频访问平台测试报告
一、测试目的
对JTangDFS系统进行性能测试,通过测试工具模拟并发的用户访问,测试系统的并发量、平均响应时间等性能指标,以测试系统在用户并发访问环境下的并发能力。
二、测试环境
本次测试在两台计算机上进行,主机A作为Chunk Server,主机B作为Master Server。
两台主机的性能参如下:
主机A: 安装Windows XP操作系统
使用Intel Pentium Dual CPU E2140 1.60GHz
应用服务器tomcat6
内存为2GB
主机B:安装Windows XP操作系统
使用Intel (R) Core(TM)2 Duo CPU E7200 2.53GHZ
内存为4GB
应用服务器tomcat6
数据库mysql5
三、测试流程
本次测试使用测试工具LoadRunner,模拟用户在分布式文件系统中比较常见的并发操作,主要测试系统参数如下:最大响应时间、最小响应时间、平均响应时间和持续时间。
测试的步骤如下:
1)编写脚本模拟用户行为
LoadRunner通过脚本(虚拟用户脚本)产生虚拟用户,模拟用户行为。
在分布式文件系统的运行过程中,比较常见的并发操作是用户下载文件系统中的文件。
测试文件大小为0.77M。
产生下载文件操作的虚拟用户行为的脚本如下所示:
public class Actions
{
static long i = 0;
InetSocketAddress addr = null;
DFSFileSystem dfs = null;
public int init() throws IOException{
DummyClassLoader.setContextClassLoader();
addr = DFSUtil.createSocketAddr("192.168.144.107:9000");
dfs = new DFSFileSystem(addr);
return 0;
}
public int action() throws IOException{
File file = new File("F:\\用户手册.doc" + i++);
dfs.copyToLocalFile(new File("/用户手册.doc"), file);
file.delete();
return 0;
}
}
2) 执行脚本,观察运行情况
分别启动50个、70个和100个并发虚拟用户。
观察到在同时启动50个并发用户时,所有的虚拟用户都能迅速的进入运行状态。
当同时启动70个虚拟用户时,观察到大部分用户(50)个能迅速进入运行状态,其他则是先进入Pending状态,再进入运行状态。
同时启动100个虚拟用户时,运行情况如下:
同时启动100个虚拟用户运行时情况图
可以看出当100个虚拟用户在运行时,有50个能够迅速全部进入到运行状态(大约1分钟),还有50个是先进入到Pending状态,经过一段时间后再进入运行状态。
3)测试数据分析
启动50个并发虚拟用户时,并发用户运行图和响应时间图如下所示:
并发用户运行图(50个用户)
响应时间图(50个用户)
有上图可以看出,50个用户能够很快(44秒)同时进入运行状态,并且在1分35秒时全部运行结束。
响应时间在刚开始的时候最大,达到3.744秒,随后降低,到38秒时达到最小,此时响应时间最小,只有不到1秒。
随后又有小幅升高。
范围在0-4秒。
启动70个并发虚拟用户时,并发用户运行图和响应时间图如下所示:
并发用户运行图(70个用户)
响应时间图(70个用户)
可以看出在同时运行70个用户时,是先有50个用户集中并发运行,结束再运行20个。
响应时间呈齿形分布,范围在0—6秒。
启动100个并发虚拟用户时,并发用户运行图和响应时间图如下所示:
并发用户运行图(100个用户)
响应时间图(100个用户)
可以看出,当运行100个并发用户时,先有50个并发用户运行,结束后运行另外50个。
响应时间除个别较大,呈大致的齿形分布,范围在0-9.5秒。
测试性能参数如下表所示:
性能参数表
四、结论
从以上的并发用户运行图和响应时间图可以看出,在运行小于等于50个并发用户时,能够迅速完成,大于50个用户时,则是每次先运行50个,结束后再运行小于等于50个用户。
随着并发用户的增多,平均响应时间逐渐增加,用户数达到50的倍数时会显著增加。