您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页VxWorks环境下网络过载的一种解决方法

VxWorks环境下网络过载的一种解决方法

来源:爱go旅游网
维普资讯 http://www.cqvip.com

108 计算机与数字工程 第35卷 VxWorks环境下网络过载的一种解决方法 赵君李海山 武汉430074) (武汉数字工程研究所摘要网络服务器过载问题已经成为日益关注的问题,过载会引起服务器系统性能急剧下降,客户请求长时间得不 网络协议同步 到响应。从改进vxworks网络协议栈出发,提出了一种控制与同步相结合的方法,避免vxworks系统接收活锁问题。 关键词中图分类号TP393 1 引言 随着网络技术的迅猛发展,网络服务器要求极 定,如果一次接收中断事件触发一次工作队列的加 入,系统用于驱动层中断处理开销极大、严重影响 系统性能;其次当工作队列状态长时间为满时,影 响其他驱动层处理;最后由于驱动层处理与协议层 分析的串行关系,协议层不能进行报文分析,应用 高的可靠性。人们不仅要求网络服务器能满足正 常的工作负载,而且希望它在过载的情况下,仍然 保持较高的吞吐率,至少有效的工作。在出现过载 情况时,运行vxworks操作系统的绝大部分网络服 务器的性能都会极度下降,甚至出现长时间不能响 应客户请求的现象。本文从对vxworks网络服务 和网络协议的实现进行了研究,提出了在网络协议 处理中加入控制与同步相结合的机制,来解决网络 层也相应的得不到接收通知。此时系统就进入了 接收活锁状态。 以往驱动层、协议层、应用层的软件开发,往往 各行其是。而嵌入式系统是一高可靠性、高效率要 求的系统。是以应用为中心的系统,无视应用,而 片面的设计,必然造成系统效率的下降。因此,应 用层必须能对协议层进行控制或协议层进行自行 控制、协议层能对驱动层进行控制或驱动层进行自 服务器过载时出现的性能下降问题。 2 网络处理分析 vxworks操作系统对于网络报文的处理可以大 致分成三层:网络适配器驱动层、协议层和应用层。 当数据帧到达网络适配器时,首先网络适配器 行控制。这样尽量降低系统用于操作系统、中间件 的开销,最大限度的满足应用的要求。 3 网络处理改进 采用vxworks的网络报文处理策略,已经无法 发起中断信号,网络适配器驱动层的中断处理例程 进行处理。之后驱动层将此帧报文的驱动层处理 加入到协议层任务的工作队列中,驱动层处理例程 结束后,执行协议层分析;协议层处理后,通知应用 层。协议层工作队列满处理为丢弃,当工作队列满 后,其后的驱动层处理被丢弃。具体接收流程(默 认应用层采用阻塞模式)为: 满足吞吐率越来越高的网络服务器的要求。为了 解决活锁问题,我们从驱动层、协议层出发,采用了 控制与同步相结合的方法,解决网络过载问题,满 足网络服务器的性能要求。 图2接收流程(修改后) 为了去掉驱动层处理与协议层分析的串行关 图1接收流程(修改前) 系,我们添加了驱动层接收任务,实现驱动层与协 议层的分离。具体接收流程(默认应用层采用阻 当网络过载时:首先由于工作队列的容量固 收到本文时间:2006年9月8日 作者简介:赵君,男,助理工程师,研究方向:可信计算,嵌入式系统。李海山,男,研究员,研究方向:可信计算,嵌入式 系统。 维普资讯 http://www.cqvip.com

第35卷(2007)第5期 计算机与数字工程 109 塞模式)如图2。 具体策略: 第一步、驱动层自行控制 将驱动层中断处理与接收处理分离,并且接收 图3控制流程I修改后) 处理任务通过开关中断控制中断处理程序,降低了 系统用与驱动层的开销。为了防止驱动层中断处 理占用过多的处理机时间,必须最小化中断封锁时 间,仅仅那些需要最少执行时间的程序在中断级处 4 性能测试 测试环境中,服务器操作系统采用vxworks,处 理机为PENTIUM3,主频700MHz,内存512M,网卡 理,像错误检查或是设备状态改变。接收任务启动 之前先屏蔽相应接收中断,完成后开启接收中断, 防止无用的驱动层中断程序占用系统开销;保证对 所有的中断事件进行正确处理,不能忽略;中断硬 件资源的等待策略,采用阶梯等待查询算法,即分 成三个阶梯进行等待查询,每一个阶梯等待时间依 次倍数型递增。正确则退出查询例程。三个阶梯 等待查询完成后,进行错误报告,例程结束。采用 该算法,一方面保证了实时性,等待时间依次倍数 递增,防止系统效率过低;一方面保证了可靠性,不 采用死循环,防止系统崩溃。在关相应接收中断的 情况下,进行相关状态监控、读取所有报文,完成后 开启接收中断;提高了驱动层接收任务的效率。 第二步、协议层与驱动层的同步 驱动层接收任务通过信号量与协议层处理任 务进行同步。可采用各种进程通信机制,如信号 量、消息等,在唤醒协议层接收处理的同时,驱动层 接收任务也必须发出通知内容,如协议类型等。协 议层接收处理等待驱动层接收任务的唤醒,保证了 驱动层接收任务先接收一帧报文;且协议层接收处 理先阻塞,降低了系统的开销。在驱动层接收任务 与协议层接收处理之间传址,不进行数据的复制, 降低系统开销。 第三步、协议层对驱动层控制及自行控制 当协议接收队列达到一定阀值时,暂停驱动层 接收任务;当协议接收队列降低到一定限度时,恢 复驱动层接收任务。 由于协议层鉴于队列容量的自行控制,实际上 了实现了应用层对于协议层的控制;协议层处理任 务在队列管理的策略下通过控制机制能够控制驱 动层接收任务,驱动层接收任务通过开关中断的方 法能够控制驱动层中断处理程序。因此实现了高 层对底层的控制。保证了系统对于应用的开销.提 高了系统的效率。具体的控制流程为: 采用RTL8139(A)。客户机的处理机为Pentium4, 主频为1.7GHz,内存1024M,操作系统采用win. dows xp.网络交换机采用10/100M自适应快速以 太网交换机.选择快速客户机和慢速服务器的理 由是为了使服务器更容易出现过载和接收活锁现 象.接收帧300字节,发送100字节。 表1测试结果 5 总结 本文针对网络服务器过载问题,提出了一种网 络协议的控制方法,实验表明,控制与同步相结合 的方法能够较好地解决网络服务器过载时出现的 性能极度下降的情况,能够有效地提高服务器的性 能。由于网络协议的复杂性,模型和原型系统还需 要进一步完善。 参考文献 [1]潘清,李未.一种网络协议的自适应控制方法[J].计算 机学报,2004,27(12):1613—1615 [2]姚念民,鞠九滨.过载服务器的性能研究[J].软件学 报,2003,14(10):1781—1786 [3]张文波,赵海,王小英,关沫.基于ARMLinux的EWS 过载性能研究[J].通信学报,2005,26(8):89—93 [4]王玉龙,廖建新.基于CAMEL2的SCP过载控制研究 [J].通信学报,2005,26(4):113—116 [5]王佰玲,方滨兴,云晓春.零拷贝报文捕获平台的研究 与实现[J].计算机学报,2005,28(1):47—52 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务