大并发量下单独招生系统性能优化研究
2014-12-25吴乃鑫
吴乃鑫
(无锡职业技术学院 数字化校园中心,江苏 无锡 214121)
每年的单独招生工作是我院招生工作的一个非常重要的组成部分,其中相当一部分生源来自于单独招生工作。我院是国家首批28所“国家示范性高等职业院校之一”,可以采用单独招生系统的形式,并不需要使用江苏省里统一的单独招生系统,我院的单独招生系统在单独招生报名期间是24小时开放的,并非江苏省统一单独招生系统每天只开放8小时,近几年我院的单独招生系统都是招生办公室委托数字化校园中心负责开发、运行和维护,通过这几年的开发和维护积累了不少经验,同时也得到了许多反馈信息,其中一个很重要反馈信息是在大并发量的情况时系统性能出现下降,用户体验不好,响应时间过长等,造成这样的现象,原因可能有多种情况,既有硬件因素也有软件因素,本文撇开硬件因素,重点来分析一下软件系统的原因,哪些地方需要进行优化和改进,分析数据库层面的,前台程序层面的,图片切割层面的等等。尽量提高整个系统的性能,给报考同学留下一次愉快的报考经历。
1 系统设计及结构
1.1 系统设计
根据我院每年的单招招生简章及招生流程,单独招生报名系统设计主要表现在以下几个方面:①易操作性:由于面向对象为高中或中职生,所以界面一定要友好,操作一定要方面。② 良好的扩展性和伸缩性:由于每年的招生简单不尽相同,有所差异,所以在设计时就应充分考虑到。
在系统设计时,对于单独招生报名系统来说,要充分考虑报名流程。我院单独招生的报名流程,如图1所示:
图1 单独招生报名流程图
1.2 系统结构
单独招生系统包含三个子系统,单独招生报名子系统、单独招生后台子系统、单独招生成绩查询子系统如图2所示。
图2 单独招生系统结构图
单独招生报名系统主要用于单招报名开始时,网上填报系统。主要功能有:信息注册,基本信息录入填写、修改,报名信息表打印,考生信息确认密码修改等等。
后台管理系统主要用于后台管理,主要功能有:考生信息管理、缴费确认管理等等。
成绩查询系统主要用于用于考生对考试成绩的查询。
2 性能优化
性能优化是指在不影响系统正常运行的前提下,使之运行地更快,完成特定功能所需的时间更短,更好地用户体验。用户访问一个网站打开页面超过2分钟,肯定让人受不了,提交一个操作超过半分钟,同样让人受不了,所以性能优化是一项非常重要的工作,同样也是一个复杂的工作,因为这不仅涉及web应用程序本身,需要从整体上来考虑,Web程序本身、数据库设计、Web应用服务器(IIS)等,对于招生系统来说,可以从以下4个方面给出优化。
2.1 页面级别的性能优化
(1)页面缓存[1]。由数据库驱动的 Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能。由于从内存中返回的数据的速度始终比新提供的数据速度快,因而可以大大提高应用程序的性能,但是缓存有一个缺点,就是数据过期问题,例如显示的内容可能不是最新的,最准确的,所以在使用缓存时要特别注意,必须设置适合的缓存策略。
(2)页面加速。页面加速主要包含几个方面:①图片,在切片图片时,不能切割成太碎,碎片太多时会影响向Web服务器请求的次数。②分离CSS文件,尽量将CSS文件放到一个单独的文件中,使用独立的CSS文件能减少页面的数据量。
2.2 架构级别性能的优化
从应用系统部署及软件架构来看,应当将应用服务器与数据库服务器分离,从而剥离业务处理和数据处理,减少因硬件原因导致的web应用程序性能下降,这需要硬件支持。
2.3 数据库的性能优化
良好的数据库结构设计,对于一个web程序来说非常重要,这不仅仅会影响到前端的程序设计,也会影响到整个应用程序的性能。所以对数据库进行重新优化,重新设计,这主要体现在以下几个方面。
(1)表结构优化。重新分析原有的表结构,重新整合原有的数据表,对于一些数据表、数据字段是否需要存在,进行仔细斟酌,例如去掉原有的性别表,同时增加程序的灵活性,增加了中学名称。
(2)存储过程使用[2]。存储过程是优化数据库性能一个很重要的方法,存储过程是一组被编译之后的SQL语句,它不仅仅能减少网络的传输量还能加快程序执行的速度。在单招招生报名系统中,我们对于报名信息的写入到数据中,采用了存储过程的方法,编写了名称为procInsEnrInfo,大大地提高了数据插入速度。
2.4 应用服务器性能优化
良好、合理的网站配置文件,对于web应用程序来说,是必不可少的,不能采取默认的配置形式,默认的配置形式是一种通用的做法,并不适合特定的应用程序,所以我们要根据不同的应用,配置不同的参数,对于web.config来说,我们在发布程序的时候应当将<compilation debug=“true”> 改成<compilation debug=“false”>,也可以设置machine.config文件对线程进行重新配置。这一切要源于对性能的监控,对发现瓶颈的地方及时做出相应的参数调整。
3 性能优化测量
3.1 测试范围及性能指标
我们假设在网络稳定的情况下,对单独招生系统的登录模块进行性能测试,同时要求最大相应时间为3秒,CPU的利用率小于80%,采用业界成熟的自动化性能测试工具 Apache ab[3]、Hp Loadrunner 11.0[4]。
3.2 测试环境
为了验证单独招生系统优化之后的性能,我们搭建测试环境,测试环境软、硬件配置如表1:
表1 测试环境软、硬件配置
3.3 测试结果
以上测试环境并没有包含网络带宽因素,对登录模块进行了测试,从并发量20至200下,不同的并发数,响应时间是不尽相同的,测试结果如表2:
表2 不同并发量下的响应时间
4 结束语
软件性能优化是一项很重要的工作,也是一项长期的工作,这不仅仅跟软件本身优化还跟软件的架构有关,同时也跟硬件资源有关,如服务器资源、网络带宽等等,本文重点研究了招生系统在大并发量下的可用性、稳定性、可度量的相应时间等等。测试及实践证明是可行的,达到了预期的效果。
[1] 朱晔.ASP.NET第一步-基于 C#和 ASP.NET2.0[M].北京:清华大学出版社,2007:472.
[2] 黄有福 基于ADO.NET数据库访问技术及性能优化分析[J].硅谷,2012:20.
[3] Apache ab[EB/OL].(2013-02-19)[2014-03-10]http://httpd.apache.org/docs/2.0/programs/ab.html.
[4] Loadrumer 11.0[EB/OL].(2012-08-07)[2014-03-10] http://www8.hp.com/tw/zh/software-solutions/loadrunner-load-testing/index.html.