1.一种抗拥塞的软件分流方法,其特征在于,步骤包括:
从网卡接收报文后,利用RSS技术进行数据分流,利用所述RSS技术计算hash值时,根据用户提供的注册函数设定hash的特征,获取初始节点权重序列的输入数据,计算得到所述hash值;
根据RSS技术进行数据分流的分流结果,将所述报文对应写入缓冲区的队列;
获取各队列在工作时使用资源情况的状态信息,并根据所述状态信息调整分配到各队列的资源,包括:根据标记为需要准备资源的队列,对高资源使用率的服务线程启动流量统计并从资源池申请资源;
根据标记为需要调整资源的队列,使用从资源池申请到的资源创建服务线程以通过线程使用资源。
2.如权利要求1所述的抗拥塞的软件分流方法,其特征在于,所述获取各队列在工作时使用资源情况的状态信息,包括:判断各队列的元素使用情况是否均衡;
若不均衡,则将元素使用量最大的队列的使用量最大值与预设的阈值进行比较,且当所述使用量大于所述阈值时,标记所述队列为需要调整资源的队列。
3.如权利要求2所述的抗拥塞的软件分流方法,其特征在于,所述判断各队列的元素使用情况是否均衡,具体为:将用于反映各队列的元素使用情况的实时信息收集到列表,并定时对所述列表记录的实时信息进行排序;
通过比对所述列表的序列中最大资源使用量和最小资源使用量,确定各队列的元素使用情况是否均衡。
4.如权利要求2所述的抗拥塞的软件分流方法,其特征在于,所述当所述使用量大于所述阈值时,标记所述队列为需要调整资源的队列,包括:当所述使用量大于第一阈值时,进一步判断所述使用量是否大于第二阈值;
若大于第二阈值,则标记所述队列为需要调整资源的队列;
若不大于第二阈值,则标记所述队列为需要准备资源的队列。
5.如权利要求1所述的抗拥塞的软件分流方法,其特征在于,所述抗拥塞的软件分流方法还包括:将待回收的线程挂载到老化列表;
通过扫描所述老化列表获得平均资源使用量;
若所述平均资源使用量超出设定水平值,则获取当前线程的后一个hash节点线程的资源使用量,并重新计算总资源使用量;
若所述总资源使用量超出限值,则将所述后一个hash节点线程的资源归还所述资源池。
6.一种抗拥塞的软件分流装置,其特征在于,包括:
数据分流模块,用于从网卡接收报文后,利用RSS技术进行数据分流,并根据分流结果将所述报文对应写入缓冲区的队列;利用所述RSS技术计算hash值时,根据用户提供的注册函数设定hash的特征,获取初始节点权重序列的输入数据,计算得到所述hash值;
资源计算模块,用于统计各队列在工作时使用资源情况,得到状态信息;
资源调整模块,用于根据所述状态信息调整分配到各队列的资源,包括根据标记为需要准备资源的队列,对高资源使用率的服务线程启动流量统计并从资源池申请资源;根据标记为需要调整资源的队列,使用从资源池申请到的资源创建服务线程以通过线程使用资源。
7.一种抗拥塞的软件分流装置,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的抗拥塞的软件分流方法。
8.一种抗拥塞的软件分流方法的存储介质,其特征在于,所述抗拥塞的软件分流方法的存储介质用于存储一个或多个计算机程序,所述一个或多个计算机程序包括程序代码,当所述计算机程序在计算机上运行时,所述程序代码用于执行上述权利要求1至5任一项所述的抗拥塞的软件分流方法。