电子文档安全管理系统性能测试方法研究
2011-11-27马兆丰刘遨宇
马兆丰 ,刘遨宇
(1.北京邮电大学信息安全中心,北京 100876;2.中国民航大学电子信息工程学院,天津 300300;3.北京国泰信安科技有限公司,北京 100086)
随着电子计算机和Internet的普及与发展,社会各个方面逐渐将越来越多的文件和信息以电子文档的方式保存在计算机上,由此而产生的信息安全隐患以及信息泄密也逐渐受到越来越多的人的重视。据2009年CSI调查显示,在各种安全技术应用中,存储设备的遗失、内部人员对网络的滥用造成的信息泄露分别达到了42.7%和29.7%,列第二、第三位,而其总和已经超过了传统恶意软件攻击的方式。为了有效地防止内部人员对未授权信息的复制与外泄,电子文档安全管理系统应运而生。
CPSec电子文档安全管理系统以Client/Server模式提供基于数据加密、数字签名的身份认证、数据完整性保护和不可否认性业务,实现策略服务器控制之下的认证和授权管理,实现对各个Manager客户端数据的安全管理和控制。目的就是构建企业内部可信环境,建设企业内部应用数据安全平台,实现企业内部灵活的数据交换和外部的增强型安全保护能力。
作为系统服务端,经常会面对海量客户端的连接请求及数据通信,其核心之一,底层通信模块的设计,就成了服务器达到高性能指标及整个系统高稳定性的关键。为验证电子文档安全管理系统良好的高并发性及数据吞吐能力,需对系统进行合理的性能测试。
针对服务器性能测试,汤国军[1]等人以视频会议系统性能测试为背景,设计并实现了一种基于完成端口(IOCP)的测试模型,较真实地模拟了客户端的数据流;张文深[2]利用LoadRunner对行政审批系统进行负载测试,找出了影响系统性能的瓶颈;桑圣洪[3]等人分析了软件性能测试的技术与方法。但目前还没有见过相关文献介绍如何结合完成端口模型和select模型测试服务器高并发性和数据吞吐量。
本文通过对CPSec电子文档安全管理系统高并发性能及数据吞吐能力的理论分析,结合完成端口模型和select模型设计并实现了一种基于LoadRunner的测试方法。
1 相关工作
1.1 LoadRunner工作原理
LoadRunner包含很多组件[3-4],其中最常用的有:用于产生测试脚本的Visual User Generator(以下简称Vugen);用于创建、管理和监控负载测试的中央控制台Controller;用于分析测试结果的Analysis。
1.1.1 虚拟用户产生器Vugen
虚拟用户产生器通过录制用户的操作行为,分析网络通信数据包以及其中的协议,自动产生脚本。测试人员可在此脚本上进行深度二次开发,从而精确模拟服务器网络通信的过程以用于测试。当客户端的某个请求是随着服务器端的响应而动态变化的时候,LoadRunner提供以下技术来解决如用户Session ID的动态数据过期、数据的重复插入、IP地址冲突等问题。
1)关联:利用函数 int web_reg_save_param(const char*ParamName,<list of Attributes>,LAST)将服务器产生的动态数据保存到一个参数中。例如:web_reg_save_param(“pr”,“LB=pr”,“RB= <br> ”,LAST)将服务器产生的动态数据保存到参数pr中,当需要用到该动态数据时,测试人员可直接引用该参数以避免动态数据过期的问题。
2)参数化:测试人员在利用Vugen录制用户操作行为从而生成自动脚本的过程中,Vugen会自动记录操作过程中用到的实际数值(如用户名、查询信息等)。为了更真实地模拟数据场景,测试人员可使用参数值代替录制的实际数据,以避免重复数据的提交,这个过程就叫做参数化。
1.1.2 负载测试控制台Controller
虚拟用户建立后,就需在应用程序上生成较重负载并计划应用负载时间(因为用户不会正好在同一时间登陆或注销)。还需要模拟各种不同的用户活动和行为。Controller提供有助于创建并运行测试的工具,以准确地模拟实际工作环境。
1)联机图查看监控器:收集性能数据,通过该信息,可以隔离系统环境中可能存在问题的区域。
2)运行时查看器:模拟用户时,可以通过运行时查看器以实时方式查看用户的操作,并确保其执行正确的步骤。
1.1.3 场景分析器Analysis
在场景执行期间,虚拟用户会产生执行处理的结果数据,Analysis可以通过对结果数据的收集和综合整理以图表和报告的形式帮助测试人员分析系统性能的瓶颈。
1.2 电子文档安全管理系统服务器网络通信模型
选择合适的Windows Sockets模型构建服务器端底层通信模块是提高服务器性能,保证系统稳定的关键因素。Windows操作系统提供了5种I/O模型[5-7],各种I/O模型对比如表1所示。
表1 几种I/O模型的对比Tab.1 Comparison of several I/O models
CPSec电子文档安全管理系统为了充分优化系统,满足高并发性及高数据吞吐能力的要求,充分结合select模型和IOCP模型各自的优点设计系统底层的网络通信模块,当处理上传下载密文等少量的长连接时使用select模型,而处理用户登录等可能存在的大量并发短连接时使用完成端口模型。
2 理论分析
会话是由虚拟用户在目标域上的一系列操作组成的,每个会话模拟一个客户端,并根据循环次数重复执行P0,P1,…,PN-1这N个操作。考虑到客户端与服务器建立连接的时间会对测试结果产生影响,特别设置了时间间隔I。整个过程如图1所示。
图1 虚拟用户操作模型Fig.1 Virtual user operating model
每个客户端的会话必须在一个可接受的时间范围内送达服务器,服务器对每个客户端会话的响应时间就是性能指标之一。由于“可接受的”时间范围是相对的,因此从直观的用户体验层面来说,响应时间比资源利用率等更适合作为服务器性能的测评标准[8]。为了明确服务器的某些性能指标,引入以下计算方法[9]。
已知服务器网络数据吞吐量C为常量,假设x为并发会话数,L(x)为某时刻服务器的负载,nL(x)则为该时刻服务器接收到的数据包数量,T(x)为服务器处理L(x)所需的时间,fSLA(Pi)为处理Pi所需要的时间。给出以下3个公式
由于电子文档安全管理系统网络通信模块在处理并发短连接时采用完成端口模型,根据完成端口模型的I/O操作机制,线程上下文切换造成的开销O可以忽略不计,由式(2)可知服务器处理负载所需要的时间T(x)减少为x/C,大大地提升了服务器高并发性能。而每个并发客户端的会话有P0到PN-1共N个操作,则处理一个会话所需要的时间为NT(x)。根据服务等级协议(service level agreement,SLA),当 NT(x)不大于fSLA(S)时,每一个虚拟客户端的会话能在一个“可接受的”时间范围内得到服务器的响应。由此得
由于N和C为常数,而fSLA(S)可从SLA协议得知。因此服务器能负载的最大并发客户端数量x便可由式(4)求出。但这只是理论值,并不能代表服务器的真实性能。不过,根据此理论值,测试人员在进行服务器负载客户端数量测试时可以采用逐步逼近的方法使服务器性能测试更佳准确。
3 测试方法设计与实现
本文主要针对电子文档安全管理系统服务器高并发性和数据吞吐能力两方面进行测试方法研究。测试流程如图2所示。
图2 LoadRunner测试流程图Fig.2 LoadRunner testing process
3.1 制定测试计划
在对系统进行了分析之后,提炼出两个测试功能点:用户登录和密文传输。要对这两个功能点进行测试以确定电子文档安全管理系统的高并发性以及数据吞吐能力。
3.2 开发测试脚本
为了模拟真实的用户登录情形,体现并发性,需对用户登录过程进行参数化并设置集合点。将系统服务器数据库中的用户名和密码存放在参数列表中。虚拟用户登录前设置集合点以体现并发性;登录时,使用参数化的用户名和密码,使每次脚本执行时,登录的用户都不同,实现更符合实际情况的模拟。此部分关键代码如下:
最后,在data.ws文件中使用参数<UserInfo_param>代替包含用户名和密码的数据包:
send buf0“<UserInfo_param>”完成对登录过程的参数化。
为了测试服务器的数据吞吐能力,虚拟用户分别选择不同大小的文件进行上传下载操作并监测相关结果。
3.3 设置、运行和监控场景
测试环境:两台 Intel(R)Pentium(R)Dual-Core CPU E5300@2.60 GHz 2.60 GHz,2.00 GB内存物理地址扩展的PC机,操作系统均为Windows XP Professional With Service Pack 3。其中一台安装LoadRunner及电子文档安全管理系统客户端,用于模拟大量用户,另一台用于模拟服务器端。
场景一设置:此场景为验证select模型的高效性。ThinkTime设置为10 s,在1:00:00时对服务器提交业务请求,客户端分别选择 100 k,200 k,500 k,1000 k,2000 k等多种不同大小的文件进行上传下载操作,观察服务器吞吐量。监测结果如图3所示。
图3 数据吞吐能力测试结果Fig.3 Data throughput test results
场景二设置:为验证完成端口模型高并发时的稳定性,虚拟400个客户端进行身份认证操作,观察服务器响应时间。监测结果如图4所示。
图4 事务响应时间测试结果Fig.4 Transaction response time test results
4 实验结果及分析
图3是服务器在场景一下的监测结果,Throughput曲线斜率变化小且处于理想水平,说明在select模型下系统处理长连接的性能良好,文件传输效率较高。
图4是场景二下服务器处理客户端认证请求的响应时间监测图。身份认证事务的服务器平均响应时间为1 ms,并发用户成功率大于95%,发生的认证失败最大响应时间也仅为1.6 ms,说明完成端口在高并发时处理短连接的稳定性良好。
两个场景的测试结果表明,采用select模型和完成端口模型结合设计出的电子文档安全管理系统,在处理文件传输等长连接时具有高效性,在处理身份认证、用户登录等短连接时具有稳定性、高并发性。
5 结语
本文通过对Windows提供的5种I/O模型以及LoadRunner工作原理的分析与介绍,结合对服务器性能的理论分析,设计了一种基于LoadRunner的性能测试方法。测试场景一中虚拟用户选择不同大小的文件进行上传下载操作,测试场景二通过对用户登录信息的参数化较真实地模拟了高并发情形。两个场景分别从数据吞吐能力及高并发性两方面验证了CPSec电子文档安全管理系统结合select模型和完成端口模型设计网络通信的高效性、合理性。
[1]汤国军,王翠荣,赵煜辉,等.完成端口在视频会议服务器性能测试中的应用[J].北京化工大学学报(自然科学版),2007,34:47-50.
[2]张文深.基于LoadRunner的行政审批系统负载测试研究[J].电脑知识与技术,2007(18):1659-1660,1756.
[3]桑圣洪,胡 飞.性能测试工具LoadRunner的工作原理及关键技术研究[J].科学技术与工程,2007,7(6):1019-1022.
[4]HP.LoadRunner Tutorial Version 9.5[EB/OL].[2011-09-15].http://h20230.www2.hp.com/selfsolve/manuals,2009-1.
[5]程远忠,杜平安.Winsock中的I/O模型探讨[J].计算机工程,2001,27(1):178-180.
[6]ANTHONY JONES,JIM OHLUND.Network Programming for Microsoft Windows[M].Beijing:China Machine Press,2003.
[7]王艳平.Windows网络与通信程序设计[M].2版.北京:人民邮电出版社,2009.
[8]AKHIL SAHAI,VIJAY MACHIRAJU,MEHMET SAYAL,et al.Automated SLA Monitoring for Web Services[C]//IEEE/IFIP DSOM,Montreal,Canada,October 2002.
[9]GYU-BAEK,KIM.A Method of Generating Massive Virtual Clients and Model-based Performance Test[C]//Fifth International Conference on Quality Software,2005:250-254.