论文部分内容阅读
摘 要:总结网络教学平台实际建设和优化过程中,采用的开源中间件,优化的步骤和方法。从服务器功能的分配、服务器参数设置、网络参数设置、数据库复制的应用和改善应用软件实现等几方面进行优化。介绍了性能测试工具的使用,获取服务器容量重要参数的方法。实施上述过程和获取数据的基础上,提出迭代式性能优化的策略和方法。
关键词:网络;性能;教学;服务器
中图分类号:TP181
网络教学平台在高校已经普及,在教学中发挥了重要作用。随着师生访问人数的不断增加,对系统并发处理性能要求越来越高。各高校在运用网络教学平台时,普遍遇到了或多或少的性能问题。特别是一些使用较集中和数据处理量大的环节,显得更为突出。面对这种现象,除了增加硬件设施以外,没有很好的解决办法。在自主实现的目标平台上针对具体的性能瓶颈和问题突发环节,以真实应用场景进行循环迭代式优化变为可能。迭代式优化是指将性能测试优化与功能修改交替进行,以性能测试发现低效实现,以目标系统的修改完善提升性能测试结果,两者交替反复作用,使目标系统性能达到较满意的效果。整个过程具备很强的实践性。如何不断的实践和总结这种基于开源软件的优化方法,是关系到如何使教育软硬件资源投入发挥更大作用,和如何更好地培养研发和维护的技术队伍的重要因素。
1 迭代式性能优化方法
迭代式性能优化方法是指以性能测试指标为参考,通过反复地优化教学平台软件,调整服务器网络参数,调整服务器软件参数,数据库参数和调整服务器功能分配,以尽量真实的应用场景为测试对象,渐进地提高整个软件服务平台的性能。
2 目标平台介绍
网络综合教学平台全部采用开源软件开发和运行。Apache和Tomcat作为Web服务器和JavaWeb容器;Postgresql作为数据库,并使用了联机复制;快速开发中间件Grails作为开发框架,同时还有一些用PHP开发的子系统。大量实践证明,开源软件已经能够满足中小软件系统的开发与运行。与庞大的、昂贵的、版权私有的商业软件相比,低成本越来越收到用户和开发人员的青睐。优化的对象包括Web服务配置软件的优化、数据库服务软件的优化、应用软件的优化和服务器群功能分配的优化。
3 教学平台软件的优化
3.1 避免数据库资源竞争
根据具体的使用情况,对软件的某些子模块进行必要的功能优化,特别是那些需要集中访问的子系统。在网络综合教学平台中,网络考试就是这样的子系统,在期末集中考试阶段,在线数达到几千。考试对稳定性有更高的要求,需要定时保存试卷已完成部分的数据,以防止意外掉线给考生带来不便。定时保存数据到服务器又给系统带来更高压力。原先的设计是保存临时试卷状态数据时,删除上一次的临时数据,删除操作会引起很大的数据库资源竞争。通过对系统结构的研究和真实场景的性能测试。最终优化为,采用“只插入、不删除、做标记”的试卷临时状态数据保存流程,如图1。
3.2 数据分割存储
原系统在学生选课每学期也会带来很大的性能问题,选课的每个用户对服务器资源的访问相对集中,也具备很大的竞争可能性。将不同年级的数据分别存储在不同的数据库,及分库存储,并设定对应的Web服务器访问相应的数据库,很好的解决了这个问题。同时,分时选课也是一个好办法。
以上二例说明了采取有效的系统重构和功能调整在系统优化中起到的举足轻重的作用。
4 网络参数调整和负载均衡的作用
4.1 分发服务器的多处理方式设置
分发服务器是指位于整个服务器群最前端的一台服务器,安装Apache服务器,作为整个系统的入口,对所有web请求进行分发。因此,一般这台服务器都作为整个系统的门户,使用统一的域名。
Apache多处理方式(Multi-Processing Module/MPM)允许特定平台处理多个并发连接。MPM模块是平台相关的。对大多数平台而言,只有一种MPM可选,不过在UNIX下则有两个选项:prefork与worker,prefork模式生成多个相同的 Apache进程,而worker模式创建多个线程。通常而言,对于只有一到两颗处理器的系统,prefork模式工作得更好,而对于拥有更多处理器的系统,线程模型工作得更有效率。
4.2 Apache参数KeepAlive
Apache的KeepAlive 配置指令决定当处理完用户发起的HTTP请求后是否立即关闭TCP连接,如果使用,用户完成一次访问后,不会立即断开连接,如果还有请求,那么会继续在这一次TCP连接中完成,而不用重复建立新的TCP连接和关闭TCP连接,可以缩短服务对用户的响应时间。相反,如果不使用这项功能,单个用户访问一个页面,会请求多次页面元素,如图片和脚本,需要建立多次连接,响应时间变长。通过不断地测试、比较和计算,寻找平衡点,不耗尽服务器资源的情况下,尽量延长KeepAlive时间,改善用户速度体验感。
操作系统参数TCP TIME_WAIT。在操作系统网络传输层保留TIME_WAIT状态避免了一个新的有着相同源地址、源端口、目的地址、目的端口的连接的建立。处于TIME_WAIT状态的任一端点防止连接上的数据传输,因此能够保证持有TIME_WAIT主机的协议的正确性不受影响。重负载服务器有可能保留有上千个TIME_WAIT,因而消耗了大量的内存并能减慢活动的连接。因此通过操作系统调节参数,找到最合适的TIME_WAIT时间值,也是优化的一项重要内容。
5 基于真实场景迭代式优化的策略与步骤
经过以上介绍的各个软件功能子系统、服务器和服务软件单独的优化后,已经达到以下目的:(1)最大程度优化应用系统性能;(2)掌握开源软件特性,测试性能与配置直接的关系。现在,将系统搭建成为可运行真实测试场景的服务器集。并使用测试工具进行集成测试,研究和记录各服务器在负载变化时的反映,测算服务器的負载容量。如在PureLoad测试平台下,真实场景的部署如下: 首先,安装PureLoad主控器,在多台测试计算机安装工作端。可以实现多台测试终端进行测试,达到更好的测试效果。
其次,PureLoad使用要设置应用场景。以网络考试为例,在PureLoad中模拟真实场景:(1)设定登录页为第一步;(2)用迭代器生成不同的登录用户账户,登录提交;(3)选择考试科目;(4)开始考试;(5)随机模拟答案,提交试卷。
第三,指定测试会话中每秒的请求个数、总请求时间。
测试完毕主要搜集几个关键结果,以备分析使用。包括:(1)最大响应时间,及各模拟用户从进入场景第一步到完成场景测试总共花费的时间,这个结果直接反映服务的良好情况;(2)平均响应时间,及各模拟用户的平均完成时间;(3)通过操作系统获取并记录测试过程CPU使用率的变化情况。
通过负载测试工具的反复测试,掌握各不同性能服务器,作为不同功能服务器时的对应的最大负载容量。通过这些负载能力数据,在固定数量的相同或不同服务器的硬件环境中,对负载均衡服务器、Web服务器集群和数据库集群所使用的服务器数量进行最优化分配。
6 结束语
通过应用开源软件,自主开发网络综合教学平台功能,降低成本,最急需的功能能够最先开发运行,并且使得系统具有很高的可维护性。研究和掌握Web应用系统各个环节的性能特性,迭代地对目标系统进行测试,持续改善系统性能,同时在服务器整体结构上进行配置重构,避免某一节点负荷过大,使得各节点负载达到平衡,系统达到最高性能水平。将开发、维护和优化有机结合起来,促使教学平台在一个健康的机制下发展,功能愈加完善,性能逐步提升。
參考文献
[1]钟元生.教育信息化投入机制改革研究[J].教育学术月刊,2010,2.
[2]Oktie Hassanzadeh and Renée J.Miller.Creating probabilistic databases from duplicated data[J].The VLDB Journal,2009,Volume 18,Number 5,Pages 1141-1166.
[3]易和平.分布式多数据库高校学籍管理系统研究与应用[J].西安石油大学学报:自然科学版,2009,4.
[4]徐劲松.软件性能测试工具综述[J].中国金融电脑,2009,7.
作者简介:蔡立斌(1975.11-),男,湖北京山人,硕士,实验师,研究方向:软件开发、软件系统安全。
作者单位:九江学院 信息技术中心,江西九江 332005
关键词:网络;性能;教学;服务器
中图分类号:TP181
网络教学平台在高校已经普及,在教学中发挥了重要作用。随着师生访问人数的不断增加,对系统并发处理性能要求越来越高。各高校在运用网络教学平台时,普遍遇到了或多或少的性能问题。特别是一些使用较集中和数据处理量大的环节,显得更为突出。面对这种现象,除了增加硬件设施以外,没有很好的解决办法。在自主实现的目标平台上针对具体的性能瓶颈和问题突发环节,以真实应用场景进行循环迭代式优化变为可能。迭代式优化是指将性能测试优化与功能修改交替进行,以性能测试发现低效实现,以目标系统的修改完善提升性能测试结果,两者交替反复作用,使目标系统性能达到较满意的效果。整个过程具备很强的实践性。如何不断的实践和总结这种基于开源软件的优化方法,是关系到如何使教育软硬件资源投入发挥更大作用,和如何更好地培养研发和维护的技术队伍的重要因素。
1 迭代式性能优化方法
迭代式性能优化方法是指以性能测试指标为参考,通过反复地优化教学平台软件,调整服务器网络参数,调整服务器软件参数,数据库参数和调整服务器功能分配,以尽量真实的应用场景为测试对象,渐进地提高整个软件服务平台的性能。
2 目标平台介绍
网络综合教学平台全部采用开源软件开发和运行。Apache和Tomcat作为Web服务器和JavaWeb容器;Postgresql作为数据库,并使用了联机复制;快速开发中间件Grails作为开发框架,同时还有一些用PHP开发的子系统。大量实践证明,开源软件已经能够满足中小软件系统的开发与运行。与庞大的、昂贵的、版权私有的商业软件相比,低成本越来越收到用户和开发人员的青睐。优化的对象包括Web服务配置软件的优化、数据库服务软件的优化、应用软件的优化和服务器群功能分配的优化。
3 教学平台软件的优化
3.1 避免数据库资源竞争
根据具体的使用情况,对软件的某些子模块进行必要的功能优化,特别是那些需要集中访问的子系统。在网络综合教学平台中,网络考试就是这样的子系统,在期末集中考试阶段,在线数达到几千。考试对稳定性有更高的要求,需要定时保存试卷已完成部分的数据,以防止意外掉线给考生带来不便。定时保存数据到服务器又给系统带来更高压力。原先的设计是保存临时试卷状态数据时,删除上一次的临时数据,删除操作会引起很大的数据库资源竞争。通过对系统结构的研究和真实场景的性能测试。最终优化为,采用“只插入、不删除、做标记”的试卷临时状态数据保存流程,如图1。
3.2 数据分割存储
原系统在学生选课每学期也会带来很大的性能问题,选课的每个用户对服务器资源的访问相对集中,也具备很大的竞争可能性。将不同年级的数据分别存储在不同的数据库,及分库存储,并设定对应的Web服务器访问相应的数据库,很好的解决了这个问题。同时,分时选课也是一个好办法。
以上二例说明了采取有效的系统重构和功能调整在系统优化中起到的举足轻重的作用。
4 网络参数调整和负载均衡的作用
4.1 分发服务器的多处理方式设置
分发服务器是指位于整个服务器群最前端的一台服务器,安装Apache服务器,作为整个系统的入口,对所有web请求进行分发。因此,一般这台服务器都作为整个系统的门户,使用统一的域名。
Apache多处理方式(Multi-Processing Module/MPM)允许特定平台处理多个并发连接。MPM模块是平台相关的。对大多数平台而言,只有一种MPM可选,不过在UNIX下则有两个选项:prefork与worker,prefork模式生成多个相同的 Apache进程,而worker模式创建多个线程。通常而言,对于只有一到两颗处理器的系统,prefork模式工作得更好,而对于拥有更多处理器的系统,线程模型工作得更有效率。
4.2 Apache参数KeepAlive
Apache的KeepAlive 配置指令决定当处理完用户发起的HTTP请求后是否立即关闭TCP连接,如果使用,用户完成一次访问后,不会立即断开连接,如果还有请求,那么会继续在这一次TCP连接中完成,而不用重复建立新的TCP连接和关闭TCP连接,可以缩短服务对用户的响应时间。相反,如果不使用这项功能,单个用户访问一个页面,会请求多次页面元素,如图片和脚本,需要建立多次连接,响应时间变长。通过不断地测试、比较和计算,寻找平衡点,不耗尽服务器资源的情况下,尽量延长KeepAlive时间,改善用户速度体验感。
操作系统参数TCP TIME_WAIT。在操作系统网络传输层保留TIME_WAIT状态避免了一个新的有着相同源地址、源端口、目的地址、目的端口的连接的建立。处于TIME_WAIT状态的任一端点防止连接上的数据传输,因此能够保证持有TIME_WAIT主机的协议的正确性不受影响。重负载服务器有可能保留有上千个TIME_WAIT,因而消耗了大量的内存并能减慢活动的连接。因此通过操作系统调节参数,找到最合适的TIME_WAIT时间值,也是优化的一项重要内容。
5 基于真实场景迭代式优化的策略与步骤
经过以上介绍的各个软件功能子系统、服务器和服务软件单独的优化后,已经达到以下目的:(1)最大程度优化应用系统性能;(2)掌握开源软件特性,测试性能与配置直接的关系。现在,将系统搭建成为可运行真实测试场景的服务器集。并使用测试工具进行集成测试,研究和记录各服务器在负载变化时的反映,测算服务器的負载容量。如在PureLoad测试平台下,真实场景的部署如下: 首先,安装PureLoad主控器,在多台测试计算机安装工作端。可以实现多台测试终端进行测试,达到更好的测试效果。
其次,PureLoad使用要设置应用场景。以网络考试为例,在PureLoad中模拟真实场景:(1)设定登录页为第一步;(2)用迭代器生成不同的登录用户账户,登录提交;(3)选择考试科目;(4)开始考试;(5)随机模拟答案,提交试卷。
第三,指定测试会话中每秒的请求个数、总请求时间。
测试完毕主要搜集几个关键结果,以备分析使用。包括:(1)最大响应时间,及各模拟用户从进入场景第一步到完成场景测试总共花费的时间,这个结果直接反映服务的良好情况;(2)平均响应时间,及各模拟用户的平均完成时间;(3)通过操作系统获取并记录测试过程CPU使用率的变化情况。
通过负载测试工具的反复测试,掌握各不同性能服务器,作为不同功能服务器时的对应的最大负载容量。通过这些负载能力数据,在固定数量的相同或不同服务器的硬件环境中,对负载均衡服务器、Web服务器集群和数据库集群所使用的服务器数量进行最优化分配。
6 结束语
通过应用开源软件,自主开发网络综合教学平台功能,降低成本,最急需的功能能够最先开发运行,并且使得系统具有很高的可维护性。研究和掌握Web应用系统各个环节的性能特性,迭代地对目标系统进行测试,持续改善系统性能,同时在服务器整体结构上进行配置重构,避免某一节点负荷过大,使得各节点负载达到平衡,系统达到最高性能水平。将开发、维护和优化有机结合起来,促使教学平台在一个健康的机制下发展,功能愈加完善,性能逐步提升。
參考文献
[1]钟元生.教育信息化投入机制改革研究[J].教育学术月刊,2010,2.
[2]Oktie Hassanzadeh and Renée J.Miller.Creating probabilistic databases from duplicated data[J].The VLDB Journal,2009,Volume 18,Number 5,Pages 1141-1166.
[3]易和平.分布式多数据库高校学籍管理系统研究与应用[J].西安石油大学学报:自然科学版,2009,4.
[4]徐劲松.软件性能测试工具综述[J].中国金融电脑,2009,7.
作者简介:蔡立斌(1975.11-),男,湖北京山人,硕士,实验师,研究方向:软件开发、软件系统安全。
作者单位:九江学院 信息技术中心,江西九江 332005