于梅英,张海波,王春彦
(兰州大学:1网络教育学院;2新闻与传播学院,甘肃 兰州 730000)
基于负载均衡技术的网络作业系统访问压力解决方案
于梅英1,张海波1,王春彦2
(兰州大学:1网络教育学院;2新闻与传播学院,甘肃 兰州 730000)
为解决网上作业系统访问压力与数据阻塞问题,提出了一种应用缓存技术、负载均衡技术的解决方案,并对网上作业系统的信息载入慢、服务器压力大、成绩试算次数过多3个关键问题设计了相应的解决算法。经兰州大学网络教育学院网上作业系统运行验证,表明实施解决方案后,能够有效地降低因访问过于集中而引起的网络阻塞和死锁问题,提高作业系统的稳定性和有效性。
缓存技术;负载均衡技术;访问压力;数据阻塞
现代远程教育是一种随着现代信息技术发展而产生的非连续面授教育的教师和学生处于时空分离的教育活动,是以多媒体技术为主要手段的新型教育形式[1]。基于因特网的远程教育集成了很多新技术,在交互上有很大的随机性,它允许教师和学生同步或异步地以文本、图形、音频、视频等方式进行交互教学活动[2]。参加现代远程教育的学生其作业是通过网上作业系统提交的,作为网上师生学术交流的平台,网上作业系统在整个学习活动过程中扮演着极其重要的角色。
随着参加远程教育的人数不断增加,网上作业系统的题库规模也在不断扩大,但在访问量高度集中时(作业关闭前)基本无法正常运行,甚至导致系统崩溃,严重影响了师生的正常交流活动和学生的学习积极性,也影响了远程教育的教学质量。因此,解决网上作业系统在访问量高度集中时的运行问题具有重要的现实意义。但是,如何才能提高系统的响应速度、稳定性和扩展性,并且保护最初的硬件投资;如何避免大量用户请求对系统带来的冲击,负载均衡技术为我们提供了一条途径,它在后端数据库间分发客户请求,以达到减少系统瓶颈,增强系统响应能力[3]。Xing Y等[4]提出,网络负载均衡让系统能够更均衡地分配资源,避免快速涌来的大量数据被分配给同一台Web服务器所导致通信阻塞。邓华锋等[5]也提出,利用服务器集群内部多台同构的服务器处理服务器过载,使服务器之间获得平衡,从而达到整个系统的负载平衡。在以上研究的基础上,该文基于网上作业系统访问量高度集中时的压力问题,提出了利用缓存技术、负载均衡技术解决访问压力的方案。
缓存技术是一项在计算机中广泛用来提高性能的技术。所谓的缓存其实就是在内存中开辟一个用来保存访问频率过高或构造成本高的数据访问空间,在缓存有效期内对此类数据的访问可以直接从内存中读取,而不必重复执行,这样既节省了系统资源,又加快了程序运行速度[6]。负载均衡技术是解决很多数据包同时访问某一服务器时所引起的访问速度慢的有效方式[7]。
图1 作业系统访问压力解决方案框图
根据网上作业系统业务需求,该系统由核心模块、学生端、教师端、外部应用共享、安全体系等部分组成,各部分的组织关系如图1所示。在学生查看作业、提交作业时,需要从应用程序、外部应用共享、服务器、数据库及其他应用服务中获取数据,在学习者访问比较集中的时候,对服务器和数据库会造成很大的访问压力,为了解决这个问题,需要在核心模块和服务器端应用缓存技术和负载均衡技术,在核心模块应用成绩试算。整个程序运行过程中,数据的存取单元主要有缓存、内存、硬盘。虽然他们都能存取数据,但是存取速度却有很大差异,缓存的存取速度比内存存取速度要高几个数量级,而内存又比硬盘的存取速度要高几个数量级[8]。负载均衡技术的目的是当访问达到最大经验值时调用备用作业服务器,来缓解正式服务器的压力,实现忙闲时灵活调用,减少资源浪费[9]。所以,缓存技术和负载均衡技术是减轻服务器负担、降低网络拥塞、增强Web可扩展性、优化Web性能的最有效、最适用的途径。
2.1 概述
常用的数据缓存技术主要包括页面输出缓存技术、Application对象技术和Cache对象技术等[10]。该设计方案式采用的是以上3种技术的综合,将不经常改变的数据取出来进行客户端缓存,到一定时间后重新从数据库取出数据。缓存时间根据数据的活跃度有所不同,比如学生个人基本信息缓存8 h,已学习的课程缓存2 h,学习中的课程缓存5 min。再将原来并行的Ajax异步请求加入队列,速度快的请求一个队列,速度慢的一个队列。缓存的目的是减少请求数量,减少重复的请求,队列的目的同样,让请求排队进行取数据操作,缓解服务器压力。缓存所有图片和脚本,如果文件有变动或客户端清除临时文件,就更新图片和脚本,否则在已经读取图片和脚本的情况下一直缓存。缓存同步数据原则是,不刷新页面里没有变化的元素,刷新时浏览器自动判断这个请求的缓存时间。如果已经超过规定的时间,则到服务器取新数据,缓存信息是学生首次登陆学生平台后,将缓存信息保存到用户本地硬盘,是IE临时文件,只要用户不清除该文件,数据会一直保存。
2.2 流程及算法处理过程
该算法涉及的输入/出如下:
输入:用户名ID(Userid)对应学生表(Student_Info)的学生基本信息ID
密码(Password)
输出:学生个人信息(Student_Info)
课程信息(Course_Info)
学习状态(StudyState)
作业缓存系统执行过程主要通过检查用户的合法性、返回学生的个人基本信息、判断课程的学习状态、设定缓存时长并记录到相应的数据表中几个阶段来完成,其详细处理流程如图2所示。
图2 作业系统缓存算法流程图
根据图2可设计出作业缓存的算法,其过程伪码描述如下:
Begin;
Step1登录系统;
Step2判断登陆信息是否合法,若不合法返回Step1,若合法继续Step3;
Step3将用户信息载入缓存,每过8 h更新缓存数据;
Step4载入用户课程;
Step5判断用户课程,若课程已经学习结束,执行Step6,反之执行Step7;
Step6将学习已经结束的课程信息载入缓存,每过2 h更新缓存数据;
Step7将学习中课程的信息载入缓存,每5 min更新缓存数据;
Step8当前学习行为结束,退出系统,释放缓存。
End
3.1 概述
首先,我们取2010年作业访问高度集中的9月的数据进行分析,如图3所示。
图3 学生平台访问情况
由图3可以看出,9月10日开始增大达到6 612人/次,9月11日达到顶峰12 135人次,9月12日回落至8 476人次,9月14日3 078人次,9月15日2 202人次。9月10日-9月11日Web服务器并发数在1 300-2 300之间波动,平均并发在1 600左右,该并发数会给服务器造成很大的压力,甚至导致服务器崩溃。
远程教育的学生是在职人员,他们的特点是平时工作较多,学习时间有限,所以他们访问平台是随着学院的教学活动安排情况变化的,平时访问量较少,考前访问量极大。要处理好作业访问量高度集中的问题,不但要使用缓存,还需要使用负载均衡技术,系统需要判断同一时间内试算和提交作业的次数,平时采用正常模式,达到最大经验值时调用备用作业服务器,来缓解正式服务器的压力,实现忙闲时灵活调用,以节省各种资源。
3.2 流程及算法处理过程
该算法涉及的输入/出如下:
输入:作业试算次数
作业提交次数
输出:分流服务器信息
负载均衡执行过程主要是通过收集作业试算次数、收集作业提交次数、判断是否达到经验值、启动备用作业服务器几个阶段来完成,其详细处理流程如图4所示。
根据图4可设计出作业缓存的算法,其过程伪码描述如下:
Begin;
Step1初始化试算次数和提交次数;
Step2收集规定时间内试算次数,执行Step4;
Step3收集规定时间内提交次数,执行Step5;
Step4判断试算次数是否到达经验最大值,若是执行Step6;
Step5判断提交次数是否到达经验最大值,若是执行Step7;
Step6启用备用服务器分流;
Step7启用备用服务器分流;
Step8退出系统。
End
4.1 概述
由于远程教育的特殊性,学生作业全部是在网络作业系统上完成的。原系统设计了作业成绩试算功能,学生可以通过试算功能,无限次地试算作业成绩,直到满意后才提交作业,但是由于学生过分依赖试算,通过不断试算的方式找出作业的正确答案,这不符合教育的初衷,同时无限次试算成绩会给服务器造成很大的压力,我们取了一个学期的学生试算数据(如表1、表2所示)。
表1 2008-2009学年第二学期作业试算及提交情况
由表1数据可以看出:①9月10日至12日高峰时间,平均作业试算次数和作业提交次数基本达到平均值的3倍;②每天大量提交作业会引起数据发送与读取阻塞,从而引起系统死锁。
表2 从布置作业到作业关闭期间单份作业试算情况
从表2可以看出,94.38%的学生在试算20次以内的时候就能正常提交数据,所以我们将原来单套作业不限试算次数,改为每天最多10次,每套最多30次,这样既保证学生能够正常提交作业,又保证了服务器的正常运行。
4.2 流程及算法处理过程
该算法涉及的输入/出主要有:
输入:作业试算次数
时间:Date time
输出:提示信息
学生作业试算次数执行过程主要通过收集作业试算次数、比对时间、判断是否达到规定时间、判断是否到达规定次数、给出相应提示信息几个阶段来完成,其详细处理流程如图5所示。
根据图5可设计出作业缓存的算法,其过程伪码描述如下:
Begin;
Step1初始化试算次数,时间段;
Step2收集试算次数,并记录时间段;
Step3判断时间段是否在24 h以内,若是执行Step4,若否执行Step5;
图5 学生作业试算次数控制算法流程图
Step4判断试算次数是否超过10次。若是执行Step6;
Step5判断试算次数是否超过30次。若是执行Step7;
Step6提示试算次数达到24 h允许提交10次的限定值,不允许再次提交;
Step7提示试算次数达到大于24 h允许提交30次的限定值,不允许再提交。
End
应用缓存技术、负载均衡技术等,通过调整作业试算次数对作业系统进行调整,并选取2010年9月作业提交高峰期的数据对调整效果进行验证,如图6、图7所示。
图6 作业成绩试算数据分布
图6 显示对比方案实施前后的网络阻塞和死锁的发生概率,可以看出在访问人次为1 000时,系统的网络阻塞和死锁的发生概率接近0,二者并无明显差异,服务器的访问压力也非常小。但在访问为7 000人/次以上,或是作业提交份数在2 000份以上时,网络阻塞和死锁的概率明显增大,且随着访问人数和提交作业数的增加,发生网络阻塞和死锁的概率也明显增大,服务器所承受的访问压力也不断增加。实施方案后,随着访问人次和作业提交数量的不断增加,发生网络阻塞和死锁的概率基本没有明显变化,在访问人数为29 066时,网络阻塞和死锁发生的概率也相当于访问人数为1 000以内,作业提交份数为1 000时的一半,服务器所承受的访问压力非常小,学习者能够很快速地访问作业系统,并提交作业。
图7 作业提交数据分布
如图7所示,对比方案实施前后的作业提交数据,总体来说,方案实施前的网络阻塞与发生死锁的概率明显高于方案实施后的概率。当作业提交份数为1 000以内时候,发生网络阻塞与死锁的概率接近0,但当提交作业份数为2 000以上时,方案实施前发生网络阻塞的概率随着提交作业份数的不断增多而逐渐增加,而方案实施后,随着提交作业份数的增加,网络阻塞与死锁的概率明显比较低,在提交作业份数为5 359时,其发生网络阻塞或死锁的概率也只相当于方案实施前提交作业份数为1 000时的发生概率。
随着现代远程教育的不断发展,通过远程教育接受学历教育和非学历教育的人数逐年增加,作业系统作为教师与学习者交流的平台,在远程教育教学中扮演着重要的角色,也是学生反馈学习效果、提交作业、需求帮助的互动平台。但是,随着远程教育学生规模的逐年增加,对作业系统的压力也越来越大,为解决网上作业系统访问压力,应用缓存技术、负载均衡等技术能够降低作业系统的访问压力、提高网上作业系统的稳定性。科学稳定的作业系统,可以提高学生的学习的积极性、主动性,全面提升远程教育的教学质量以及服务水平,对进一步推动远程教育的发展将有重大意义。
[1]周雪莹.远程教育系统中学院模块的研究[D].南京:南京气象学院硕士论文,2004:1
[2]勾学荣,于斌.建立现代远程教育平台的技术策略[J].电信工程技术与标准化,2000,(3):4-6
[3]刘同.负载均衡技术在数据库集群系统中的应用与实现[D].国防科学技术大学硕士论文,2009:1-6
[4]祝宇林.利用负载均衡提升网络性能[J].信息技术,2005,(4):110-110
[5]邓华锋,刘云生,肖迎元.分布式数据流处理系统的动态负载平衡技术[J].计算机科学,2007:34(7):120
[6]钟克吟.ASP 缓存策略探讨[J].现代计算机,2006,(243):68
[7]王士克,吴集,金士尧.Web缓存技术概述[J].计算机与信息技术,2005,(6):37
[8]商新娜.Web应用中的海量数据访问缓存技术[J].北京联合大学学报,2007,21(3):46
[9]薛军,李增智,王云岚.负载均衡技术的发展[J].小型微型计算机系统,2003,24(12):2100-2103
[10]施为.Web应用中的数据缓存技术[J].淮阳师范学院学报,2005,5(4):321
Solutions based on load balancing technology to the access pressure of network tasks
Yu Meiying1,Zhang Haibo1,Wang Chunyan2
(1Distance Education College;2School of Journalism& Communication,Lanzhou University,Lanzhou 730000,China)
In order to solve the problem of the high access pressure of network task system and data blocking,this article proposes solutions based on cache technology and load balancing technology,and a plan for solving three key problems:low speed of information load of network task system,high pressure of server and too many times of pilot calculation for scores.We also tested the network task system on the website of Lanzhou University Distance Education College.The result shows that applying it can effectively solve the problem of network being blocked or locked caused by excessive access so as to enhance the stability and effectiveness of the network task system.
cache technology;load balancing technology;access pressure;data blocking
G434
A
1004-5287(2011)02-0150-05
2010-12-22
于梅英(1980-),女,甘肃嘉峪关人,工程师,硕士,主要研究方向:软件工程。