为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

过载服务器的接入控制

2017-11-13 9页 doc 27KB 25阅读

用户头像

is_281650

暂无简介

举报
过载服务器的接入控制过载服务器的接入控制 中图分类号:TP393文章编号:1000—3428(2007)10—0114—03 文献标识码:A?网络与通信? 2012-07-19################2012-07-19#######2#012-07-19######## 过载服务器的接入控制 牛广锋,林 彤,王东安,葛敬国,南 凯 (中国科学院计算机网络信息中心,北京 100080) 摘 要:在过载条件下,Web 服务器的响应时间会增加,吞吐率会降低,有必要采用接入控制。通过对 TCP 传输机制和 Linux 内核实现过 程的分...
过载服务器的接入控制
过载服务器的接入控制 中图分类号:TP393文章编号:1000—3428(2007)10—0114—03 文献标识码:A?网络与通信? 2012-07-19################2012-07-19#######2#012-07-19######## 过载服务器的接入控制 牛广锋,林 彤,王东安,葛敬国,南 凯 (中国科学院计算机网络信息中心,北京 100080) 摘 要:在过载条件下,Web 服务器的响应时间会增加,吞吐率会降低,有必要采用接入控制。通过对 TCP 传输机制和 Linux 内核实现过 程的分析,该文提出了接入控制保护机制,描述了它的和实现。通过实验,明它能够有效地降低服务器过载带来的影响。 关键词:接入控制;TCP 标识;过载 Admission Control in Overloaded Web Servers NIU Guangfeng, LIN Tong, WANG Dongan, GE Jingguo, NAN Kai (Computer Network Information Center, Chinese Academy of Sciences, Beijing 100080) 【Abstract】It is becoming essential to protect Web servers against overload by providing admission control. This paper presents the design that performs admission control based on TCP header, and implements it in the Linux OS. There are six 1-bit flags in TCP header. The packets with flags, such as ACK packets, are more important than the application request packets. The experiments demonstrate its effectiveness, and show that the approach is efficient during overload. 【Key words】Admission control; TCP flags; Overload 十几年来,Internet上的信息量 、用户数都呈指数级增长, 求做接入控制,效率较低。文献[2]在内核协议栈上控制服务 电子商务、在线银行等新业务迅速得到应用。 In对ternet 上 器所能接收到的请求数据包,包括控 T制CP 连接数和 HTTP 的 Web 服务器和网络架构提出了新的挑战。人们不仅要求它 请求。这两种方法的弱点是数据包需要经过复杂协议栈。满足正常的工作负载需求,而且在超负荷时期,依然要保 持文献 [1,2,6] 讨论了在接 收中 断处理过 程中 实现接入控 较高的吞吐量。一般情况下W,eb 服务器能够满足负载要求, 制 。文献 [1,2]根据 HTTP 包头信息做接 入控制,由于 解析 然而 HTTP 请求的流量经常以突发方式到达,使服务器过 载。HTTP 包头相对比较复杂,不适于在硬件驱动程序中使 用。 Web 服务器过载情况分为两种:一种是瞬时过载, 即服文献[6]对活锁现象作了详细分析,并根 SY据N 信息做接入 务器暂时的过载。文献[4]指出 HTTP 请求的通信量分布是自 控制,但是只简单控 制SYN 数据包并不能避免服务器过载。相似的,存在大量突发,会造成服务器短时间过载。这 种情 2 接入控制实现 况持续时间一般很短,服务器很快恢复到正常性能。瞬 时过实现接入控制最根本的两个问题是“在什么位置实现接 载基本上不会影响服务器性能,本文不进行处理。另一种是 入控制和依据什么信息完成接入控”。本制文的接入控制在数 服务器长时间的过载,一般是由某一特殊事件引起的,比 如据包接收中断处理中实现,依 T据CP 包头信息和系统负载决 服务器受到拒绝服务攻击或者某个热点事件的发生等。 定如何处理数据包——丢弃或继续。 在高负载情况下,Web 服务器性能急剧下降,一个或几 个重要的服务器资源——网络接口、硬盘、内存 和CPU 出现 ip_rcv() 不足。在一些情况下,也与操作系统的实现机制有关。 操作2 触发软中断执行 系统以中断方式完成 I/O 事务,在过负载情况下性能很差, net_rx_action 接收 sk_buf [3] 缓冲环会 发生“活锁(livelock)”现象。以中断方式执行的任务 一比收包 队列 般的任务有更高的优先级。如果中断发生的频率过高,就 会 导致系统把大部分时间都用在中断处理。系统的吞吐量迅 速接入控制 机制 下降,甚至降至 0,这种情况被称为“活锁”。虽然没有发 生死锁,但是系统没有执行任务。如果网络中数据包到达服 中断处理务器的频率过高,就会引起服务器在中断上浪费太多的时间, [6]降低吞吐率。 1 触发中断 为了减轻或避免服务器过载所带来的影响,有必要 实行NIC 接入控制。本文描述如何在中断处理程序中根 TC据P 包头信 图 1 接收中断处理过程 息实现接入控制,并给出了设计和实现。 作者简介:牛广锋(1976,),男,硕士,主研方向:计算机网络体系 1 相关研究 为了提高服务器处理性能,避免服务器过载,在接入控结构;林 彤,博士生;王东安、葛敬国,博士;南 凯,副研究员 收稿日期:2006-05-25E-mail:niuguangfeng@cnic.cn 2012-07-19################2012-07-19#######2#012-07-19########制方面有许多相关研究。文献[5]要求Web 服务器对HTTP请 理中实现接入控制,尽可能早地放弃不能完成的任务,既可负载。 以有效防止活锁,又提高了效率。接入控制部分只作简单分 控制信息对于 TCP 是非常重要的,在系统过载时,可以 析——分析 TCP 包头的信息,判断 TCP 包类型,对不同类 丢弃一部分 HTTP 请求包和连接请求包;对带有控制信息的 型的数据包采用不同的处理方式。 包——FIN、ACK、RST、URG 和 PSH,则要防止由于 sk_buf 2.1 数据包接收过程 由于接入控制是在中断处理中实现,因收包队列溢出而丢弃。 此简要描述 Linux 本文把含有 FIN、ACK、RST、URG 和 PSH 标志的包称 内核处理数据包的过程。过程可以分 3为 个阶段:网卡中断 为控制包。把含有 HTTP 请求的普通数据包称之为负荷包, 处理,软中断处理和应用程序处理。每两个相邻的阶段之间 而只含有 SYN 标志的包称之为 SYN 包。 根据以上,设都有一个或多个输入队列相联系。 计出控制,如图 2 所示。首先判 当网卡接收到数据包,它先利 D用MA 传送到接收缓冲 断系统是否过载,如果不过载,就按照原来的流程处理, 否区环中,然后使用中断通知内核。网卡中断处理程序申请则就要经过接入控制流程。 新 的 sk_buf,把数据包拷入,再 把sk_buf 加入到 sk_buf 收 包队 否 列中。内核的软中断机制调 用net_rx_action(函数分发数)据 系统过载 ? 包。ip_rcv()处理 ipv4 数据包。数据包经过网络层的处理, 最 后到达传输层,TCP 数据包由 tcp_v4_rcv()处理。 是 TCP 数据包的处理比较复杂,分 3为 种情况:第 1 种是 数据包初始判断 TCP 连接没有完全建立,由函 数tcp_rcv_state_process(处理,) 例如当收到 SYN 包;第 2 种是处理普通数据包,经过一系列 处理后,负荷会被放入数据队列(socket's receive queue;)第 3 类是处理控制信息。控制包 其它包 负荷包 SYN 处理 处理 处理 处理包 图 1 显示了在 Linux Kernel 2.4.x 中,rtl8139too 网卡接 收到数据包转交给内核的过程。网卡在接收到数据包之后 触 发中断,引发处理函 数rtl8139_interrupt()的调用。如果是 接 收数据包中断,下一步就调 rtl用8139_rx_interrupt(函)数。原来的流程 主 要工作是分配新 sk_buf空间 ,把数据包插入 sk_buf收包队 列 sk_buf 收包 队列 尾部。在 netif_rx()函数中,对 sk_buf 收包队列长度做检查, 使其被限制在某个固定值范围之内。 如果发现队列已满,就 直接释放 sk_buf,即丢弃数据包。 图 2 数据包处理流程 当 Web 服务器过载时,队列长度必然会达到限定值,导致大 数据包初 始判 断过程把 网卡 所接收到 的数 据包分为 4 类:SYN 包, 控制包, 负荷 包和其它 包。其它包是与 Web 量数据包被丢弃。 应用进程无关的数据包, 如ARP 包、Ping 包等。IP 包头的 2.2 传输层信息控制协议字段和 TCP 包头的标志位在数据包中的位置是固定的, 采用 TCP 包头信息实现接入控制,主要根据标志字段来 判定过程根据位置直接分析 出TCP 包头的标志。从 IP 头部 识别功能不同的数据包。TCP 是有状态的可靠传输协议,根 开始的第 72bit 位开始的 8bit 代表了协议类型。首先判断是 否是其它包,IP 包头中的协议类型不 是TCP 或 TCP 包头的 据它的特点,本文使用了下面的两条规则。 目标端口不是 Web 应用进程所接收的端口就属于其它包 。其(1) 及时拒绝新 建连接请求, 而不是发生过 载时释放连 它包按照原来的流程处理。 接。Web 服务器过载的一个重要因素 是TCP 连接数过多,服 如果不是其它包,就是发 向Web 服务器进程的数据包 。 IP 头部是 20B,从 TCP 头部开始的第 110bit 判定 SYN 包。 务器无法及时处理浏览器发来 H的TTP 请求。每一个 TCP 连 当所有的标志位都“为0”时,被判定为负荷包;当只 有SYN=1 接都要占用许多系统资源,如果一个连接要被释放,最好的时,被判定为 SYN 包,否则被认为是控制包。 办法是在系统发生过载之前拒绝部分连接。丢弃浏览器所发 2.3 过载判断送的连接请求包,即 第1 个 SYN 包,可以控制与 Web 服务 判断系统过载需要考虑多种因素,综 CP合U、内存、网 器连接的浏览器数量。 络连接数等信息判定系统负载程度,然而采用这些会让处 理(2)丢弃浏览器发送的负荷数据包,接收带有控制信息的 变得复杂。 数据包。浏览器发送的负荷数据包绝大多数 HT是TP 请求。 sk_buf 收包队列长度是非常重要的度量,实际反映服务在过载时,丢弃负荷数据包实际是暂时减少负载。 器负载状态。无论服务器的瓶颈在什么地方,最终结果都会 TCP 完成数据传输需要两个过程:数据发送和数据 确在队列长度上表现出来,而 Lin且ux Kernel2.4 .x 内核也根据 认。Web 服务器向浏览器发送数据包,浏览器返回确认 包。队列长度设定 5 个拥塞级别。 如果把它丢弃,就会导致服务器向浏览器重发此数据包, 实在过载情况下,要丢弃部分负荷包 SY和N 包。HTTP 请 际上增加了服务器的负担。大部分 H的TTP 请求只含有 URL 求具有一定突发性,服务器常常处于瞬间过载之中,如果和其它一些信息,内容较少,只包含在一个数据包中。 只 Web 服务器向浏览器发送 HTTP 数据,要发送较多数据 —115— 包。浏览器在收到数据包后,都会回送一个确认包。因 此在 正常情况下,硬件驱动必然要处理大量 T的CP 确认包(ACK)、 部分 HTTP 请求包和少量连接请求包(SYN)。如果不加选择 60 处于不稳定状态。为了减 少HTTP 请求突发的影响,要考虑 50 一段时间内的平均负载。在实现时,本文实现采 用Li了nux40 内核的过载判断方法。30 2.4 丢包方式20 在过载情况下,要丢弃负荷包 SY和N 包,有多种方式可 吞吐量 /Mbps 10 供选择,一般可以采用下面的丢弃方式。0 2 000 4 000 6 000 8 000 10 000 12 000 0 (1)过载丢弃 每秒所发出的请求数 /次 当系统负载超过某一定值,丢弃所有 S的YN 请求包和 Original driver Modified driver 负荷包。这种方法非常简单直接,然而会给客户一种系统(a)使用 HTTP/1.0 不 稳定的感觉 。假设在过载情 况下拒绝所有 的负荷包和 70 SYN 包,很快造成系统空闲。采用这种方式会使服务器 60 负载产生 摇摆,在空闲和过载之间来回摆动。 50 40 (2)早期随机丢弃(RED)/Mbps30 量当系统负载超过某一定值,随机丢弃部 SY分N 请求包 20 和负荷包。包被丢弃的概率与负载成正比变化。它的好处吞吐10 0 在 于能缓解或避免系统过载,系统负载变化比较平滑,00012 000 14 000 2 000 4 000 6 000 8 000 10 0 不会出 现大起大落现象。 每秒所发出的请求数 /次 Original driver Modified driver (3)带权值的早期随机丢弃 一些客户需要特别的服务 (b)使用HTTP/1.1标准 保证,如远程管理。然而从数 图 3 用 sclient 测试服务器性能结果 据包中提取客户信息、查寻和比较等操作使硬件中断处理过 程变得复杂。 4 结论 Web 服务器所能接收的 HTTP 请求数有固定峰值,超过 2.5 Linux实现 本文修改了 Linux kernel 2.4.x中 的 rtl8139too网卡驱动, 就会降低 Web 服务器的服务能力。因此有必要采用接入控制 在 rtl8139_rx_interrupt(函数开头增加了上述过)程sk_。buf 收 来消除请求数过多所带来的影响。 包队列长度被作为负载大小判断的标准。本文采用了早期不同类型的 TCP 包对服务器负载的影响是不相同的。 随 SYN 包意味着要与 Web 服务器进程建立新连接,占用内存 、机丢弃策略。在处于拥塞状态时,每间隔一定数量的数据包, CPU 时间等资源,并带来新 的HTTP 请求,随后给服务器带 就自动丢弃一个。随着拥塞级别增加,相应增加丢弃比例。 来很大的压力。普通的负荷包含 H有TTP 请求,要求服务器 进程传送一个对象,也会新增加压力AC。K 包是浏览器的确 3 实验 认包,如果 TCP 层收不到,就会重发对应数据包,所以接收 实验结果说明本方法是有效的,能够大大减少过载 对服 ACK 包实际上是减少服务器压力。本文根据以上内容, 设计 务器的影响。 并实现了对网络数据包的接入控制,通过实验证明有很好 的实验软硬件环境如下所述W:eb 服务器硬件配置为 CPU 效果。 是 PII350,128MB 内存,2 块 100Mb 网卡;软件环境:运 行 Red Hat 9.0 操作系统,使用了 Linux 2.4.22 内核,Web 服 参考文献 务器是 Apache 2.2。2 台硬件配置为 CPU 是 PIV、100Mb 以 1 Voigt T, Gunningberg P. Adaptive Resource-based Web Server 太网卡、512MB 内存的 PC 运行 sclient 作为客户机。它们通 Admission Control[C]//Proc. of ISCC’02. 2002. 过交叉线直接与 Web 服务器主机相连。 2 Voigt T, Tewari R, Freimuth D, et al. Kernel Mechanisms for Service 在实验中,本文分别使用 了HTTP/1.0 和 HTTP/1.1 两种 Differentiation in Overloaded Web Servers[C]//Proc. of Usenix 标准。HTTP/1.0 使用非持久连接,每次服务器发送一个对 象 Annual Technical Conference. 2001-06. 后,相应的 TCP 连接就被关闭,即每个连接都没有持续到可 用于传送其他对象HTTP/1.。1 的默认模式是使用带流水线的 3 Mogul J C, Ramakrishnan K K. Eliminating Receive Livelock in an 持久连接,浏览器可以持续发出引用对象的请求。 Interrupt-driven Kernel[J]. ACM Transactions on Computer System, 图 3 中的纵坐标是服务器向浏览器的吞吐量,横坐标是 1997, 15(3): 217-252. 每秒钟所发出的请求数。 从2 个图看出,当请求数迅速增加 4 Crovella M E, Bestavros A. Self-similarity in World Wide Web Traffic: 时,没有修改的驱动,其服务能力也迅速下降。采用修改 后Evidence and Possible Causes[J]. IEEE/ACM Transactions on 的驱动,其服务能力虽然有一些下降,但幅度小很W多eb 。Networking, 1997, 5(6): 835-846. 服务器的最高处理能力大约 是1 000 次/s 请求。在每秒钟请 5 Cherkasova L, Phaal P. Session Based Admission Control: A 求数达到 3 000 次以上时,Web 服务器的能力还能保持,基 Mechanism for Improving the Performance of an Overloaded Web 本没有下降,当然其中有很大部分请求并不能得到服务 。随Server[R]. HP Lab, Technical Report: HPL-98-119, 1998. 着请求数增加,没有修改过 W的eb 服务器,其服务能力迅速6 姚念民 , 鞠九滨 . 过载服 务器的 性能研究 [J]. 软 件学报 , 2003, 下降。使用 HTTP/1.0,在 10 000 次/s 时,服务能力下降到14 (10). 10Mbps;使用 HTTP/1.1,在 12 000 次/s 时,服务能力也下 降到近 10Mbps。相反修改过的服务器,其服务能力还是保持 —116— Your requestcould not be processed becauseof a configurationerror: "Could not connect to LDAPserver." For assistance,contact your network support team. file:///C|/Users/Administrator/Desktop/新建文本文档.txt 涵盖各行业最丰富完备的资料文献,最前瞻权威的行业动态,是专业人士的不二选择。 file:///C|/Users/Administrator/Desktop/新建文本文档.txt2012/8/26 12:19:58
/
本文档为【过载服务器的接入控制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索