一种应对海量并发访问的方法及装置与流程

文档序号:12622639阅读:202来源:国知局
一种应对海量并发访问的方法及装置与流程

本发明涉及互联网技术领域,特别涉及一种应对海量并发访问的方法及装置。



背景技术:

无论是人们日常的工作、学习和娱乐,基于网络的应用都被广泛的使用。上述的基于网络的应用都是运行在服务器端的,而服务器的性能虽然远强于一般的民用计算机,但是当服务器面对海量并发访问时,服务器也会面临很大的压力,甚至服务器会有发生宕机的危险。分布式拒绝服务(DDoS:Distributed Denial of Service)是一种网络攻击方式,就是基于海量并发访问而给服务器带来巨大的运行压力,最终引发服务器的宕机。如何妥善的解决上述问题,就成为了业界亟待解决的课题。



技术实现要素:

本发明提供一种应对海量并发访问的方法及装置,用以提高服务器面对海量并发访问的抗压能力,达到更加合理高效的利用服务器的系统资源的效果。

根据本发明实施例的第一方面,提供一种应对海量并发访问的方法,应用于服务器端,包括:

设置响应访问的等待处理机制;

设置网络数据包的等待队列的溢出处理机制;

设置关联到同一个用户文件句柄上的TCP套接字的处理机制。

在一个实施例中,所述设置响应访问的等待处理机制,包括:

设置应对响应等待时长为预设百分比的原响应等待时长;

当响应等待时长超过所述应对响应等待时长时,启用响应等待的快速回收机制和重新使用机制。

在一个实施例中,所述设置网络数据包的等待队列的溢出处理机制,包括:

实时判断接收到网络数据包的速率是否大于处理网络数据包的速率;

当接收到网络数据包的速率大于处理网络数据包的速率时,存储网络数据包;

当存储的网络数据包的数量达到预设的存储上限,拒绝接收新的网络数据包。

在一个实施例中,所述设置关联到同一个用户文件句柄上的TCP套接字的处理机制,包括:

实时监控未被关联到任意一个用户文件句柄上的TCP套接字的数量;

当所述TCP套接字的数量大于预设的TCP套接字阈值时,立即将孤儿连接复位并发送警告信息。

在一个实施例中,还包括:

设置TCP/IP会话的滑动窗口设置为可变窗口。

设置系统缓存中的有效信息的检查机制。

根据本发明实施例的第二方面,应用于服务器端,提供一种应对海量并发访问的装置,包括:

第一设置模块,用于设置响应访问的等待处理机制;

第二设置模块,用于设置网络数据包的等待队列的溢出处理机制;

第三设置模块,用于设置关联到同一个用户文件句柄上的TCP套接字的处理机制。

在一个实施例中,所述第一设置模块,包括:

设置子模块,用于设置应对响应等待时长为预设百分比的原响应等待时长;

启用子模块,用于当响应等待时长超过所述应对响应等待时长时,启用响应等待的快速回收机制和重新使用机制。

在一个实施例中,所述第二设置模块,包括:

判断子模块,用于实时判断接收到网络数据包的速率是否大于处理网络数据包的速率;

存储子模块,用于当接收到网络数据包的速率大于处理网络数据包的速率时,存储网络数据包;

拒绝子模块,用于当存储的网络数据包的数量达到预设的存储上限,拒绝接收新的网络数据包。

在一个实施例中,所述第三设置模块,包括:

监控子模块,用于实时监控未被关联到任意一个用户文件句柄上的TCP套接字的数量;

复位子模块,用于当所述TCP套接字的数量大于预设的TCP套接字阈值时,立即将孤儿连接复位并发送警告信息。

在一个实施例中,还包括:

第四设置模块,用于设置TCP/IP会话的滑动窗口设置为可变窗口。

第五设置模块,用于设置系统缓存中的有效信息的检查机制。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明一示例性实施例示出的一种应对海量并发访问的方法的流程图;

图2为本发明一示例性实施例示出的一种应对海量并发访问的方法的步骤S11的流程图;

图3为本发明一示例性实施例示出的一种应对海量并发访问的方法的步骤S12的流程图;

图4为本发明一示例性实施例示出的一种应对海量并发访问的方法的步骤S13的流程图;

图5为本发明另一示例性实施例示出的一种应对海量并发访问的方法的流程图;

图6为本发明一示例性实施例示出的一种应对海量并发访问的装置的框图;

图7为本发明一示例性实施例示出的一种应对海量并发访问的装置的第一设置模块61的框图;

图8为本发明一示例性实施例示出的一种应对海量并发访问的装置的第二设置模块62的框图;

图9为本发明一示例性实施例示出的一种应对海量并发访问的装置的第三设置模块63的框图;

图10为本发明另一示例性实施例示出的一种应对海量并发访问的装置的框图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是根据一示例性实施例示出的一种应对海量并发访问的方法流程图,如图1所示,该应对海量并发访问的方法,包括以下步骤S11-S13:

在步骤S11中,设置响应访问的等待处理机制;

在步骤S12中,设置网络数据包的等待队列的溢出处理机制;

在步骤S13中,设置关联到同一个用户文件句柄上的TCP套接字的处理机制。

在一个实施例中,服务器面对海量并发访问时,需要进行相应的设置才可承受海量并发数据所带来的访问压力,若服务器使用常规的设置去面对海量并发数据时,服务器可能会出现卡顿,甚至是宕机的风险。为了解决上述问题,需要将应对响应等待时长设置为原响应等待时长的预设比例,且该比例大于0.1小于0.8。当响应等待时长超过该应对响应等待时长时,启用响应等待的快速回收机制和重新使用机制。还需要实时判断接收到网络数据包的速率是否大于处理网络数据包的速率,当接收到网络数据包的速率大于处理网络数据包的速率时,存储接收到当还未开始处理的网络数据包,当存储的网络数据包的数量达到预设的存储上限,拒绝接收新的网络数据包。再有,实时监控未被关联到任意一个用户文件句柄上的TCP套接字的数量,当所述TCP套接字的数量大于预设的TCP套接字阈值时,立即将孤儿连接复位并发送警告信息。

除上述内容之外,还包括设置套接字的状态和该套接字的状态的持续时间。具体而言,选择套接字的状态为FIN-WAIT-2,可以降低服务器系统内存的占用率,进而降低内存溢出的风险。还有,设置客户端发出的网络数据包的头部的缓冲区的处理机制,该网络数据包的头部的缓冲区的大小根据系统分页大小来确定。再有在每隔预设的缓存检查周期,检查一次缓存的有效信息。设定服务器运行程序的进程数量为该服务器的cpu数量的整数倍,其中该cpu的数量包括cpu的线程数的数量。降低超时等待时间,例如将超时等待时间变为默认值的三分之一。

本发明可提高服务器面对海量并发访问的抗压能力,达到更加合理高效的利用服务器的系统资源的效果。

在一个实施例中,如图2所示,步骤S11包括如下步骤S21-S22:

在步骤S21中,设置应对响应等待时长为预设百分比的原响应等待时长;

在步骤S22中,当响应等待时长超过所述应对响应等待时长时,启用响应等待的快速回收机制和重新使用机制。

在一个实施例中,服务器在等待对方响应时,服务器系统的部分网络资源和部分硬件资源是处于被占用的状态,服务器同时等待的响应越多,所占用网络资源和硬件资源就越多。在应对海量并发响应时,保持原响应等待时长会导致服务器出现无法及时处理新的响应的情况,从而降低了用户的使用体验。较佳的实施例,设置应对响应等待时长为原响应等待时长的四分之一,当服务器的系统对某一个客户端的响应等待时长超过所述应对响应等待时长时,就启动响应等待的快速回收机制和重新使用机制,达到释放服务器的被占用的系统资源,以便响应新的客户端的请求。

在一个实施例中,如图3所示,步骤S12包括如下步骤S31-S33:

在步骤S31中,实时判断接收到网络数据包的速率是否大于处理网络数据包的速率;

在步骤S32中,当接收到网络数据包的速率大于处理网络数据包的速率时,存储网络数据包;

在步骤S33中,当存储的网络数据包的数量达到预设的存储上限,拒绝接收新的网络数据包。

在一个实施例中,为了防止服务器的系统资源占用率长时间维持在过高情况而导致宕机的发生,所以需要避免服务器的系统同时处理过多的网络数据包。服务器的系统实时判断接收到的网络数据包的速率,并与服务器处理网络数据包的速率进行比较。若服务器接收到网络数据包的速率大于处理网络数据包的速率,存储接收到但还未开始处理的网络数据包,以备当前正在处理的数据包处理完成后,立即处理已存储的网络数据包。另一方面,存储过多的网络数据包会给服务器的系统资源带来巨大的压力,所以需要设置网络数据包的存储上限,当服务器存储的网络数据包的数量达到该预设的存储上限时,拒绝存储新接收到的网络数据包。

在一个实施例中,如图4所示,步骤S13包括如下步骤S41-S42:

在步骤S41中,实时监控未被关联到任意一个用户文件句柄上的TCP套接字的数量;

在步骤S42中,当所述TCP套接字的数量大于预设的TCP套接字阈值时,立即将孤儿连接复位并发送警告信息。

在一个实施例中,服务器实时监控该未被关联到任意一个用户文件句柄上的TCP套接字的数量,当该TCP套接字的数量大于预设的TCP套接字阈值时,立即将孤儿连接复位并发送警告信息,可以防御DDoS攻击。还有,当服务器的内存增加之后,应该相应的增加该预设的TCP套接字阈值的数值。

在一个实施例中,如图5所示,还包括如下步骤S51-S52:

在步骤S51中,设置TCP/IP会话的滑动窗口设置为可变窗口。

在步骤S52中,设置系统缓存中的有效信息的检查机制。

在一个实施例中,设置TCP/IP会话的滑动窗口设置为可变窗口,具体的编程指令为net.ipv4.tcp_window_scaling=1,其中,当该net.ipv4.tcp_window_scaling取值为1的时候,该滑动窗口设置为可变窗口。将滑动窗口设置为可变窗口后,可提高数据传输能力。

设置系统缓存中的有效信息的检查机制。在预设保留时间之内,该文件没被请求,则删除该文件的缓存。进一步的,每间隔预设的检查周期,检查一次系统中各个缓存的有效性。

在一个实施例中,图6是根据一示例性实施例示出的一种应对海量并发访问的装置框图。如图6示,该装置包括第一设置模块61、第二设置模块62和第三设置模块63。

该第一设置模块61,用于设置响应访问的等待处理机制;

该第二设置模块62,用于设置网络数据包的等待队列的溢出处理机制;

该第三设置模块63,用于设置关联到同一个用户文件句柄上的TCP套接字的处理机制。

如图7所示,该第一设置模块包括设置子模块71和启用子模块72。

该设置子模块71,用于设置应对响应等待时长为预设百分比的原响应等待时长;

该启用子模块72,用于当响应等待时长超过所述应对响应等待时长时,启用响应等待的快速回收机制和重新使用机制。

如图8所示,该第二设置模块包括判断子模块81、存储子模块82和拒绝子模块83。

该判断子模块81,用于实时判断接收到网络数据包的速率是否大于处理网络数据包的速率;

该存储子模块82,用于当接收到网络数据包的速率大于处理网络数据包的速率时,存储网络数据包;

该拒绝子模块83,用于当存储的网络数据包的数量达到预设的存储上限,拒绝接收新的网络数据包。

如图9所示,该第三设置模块63包括监控子模块91和复位子模块92。

该监控子模块91,用于实时监控未被关联到任意一个用户文件句柄上的TCP套接字的数量;

该复位子模块92,用于当所述TCP套接字的数量大于预设的TCP套接字阈值时,立即将孤儿连接复位并发送警告信息。

如图10所示,还包括第四设置模块101和第五设置模块102。

该第四设置模块101,用于设置TCP/IP会话的滑动窗口设置为可变窗口。

该第五设置模块102,用于设置系统缓存中的有效信息的检查机制。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1