CN108536535A - 一种dns服务器及其线程控制方法和装置 - Google Patents

一种dns服务器及其线程控制方法和装置 Download PDF

Info

Publication number
CN108536535A
CN108536535A CN201810070146.1A CN201810070146A CN108536535A CN 108536535 A CN108536535 A CN 108536535A CN 201810070146 A CN201810070146 A CN 201810070146A CN 108536535 A CN108536535 A CN 108536535A
Authority
CN
China
Prior art keywords
thread
data packet
utilization rate
buffer
threshold value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810070146.1A
Other languages
English (en)
Inventor
丁浩
石磊
胡文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201810070146.1A priority Critical patent/CN108536535A/zh
Publication of CN108536535A publication Critical patent/CN108536535A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Abstract

本发明实施例提供了一种DNS服务器及其线程控制方法和装置,该DNS服务器配置有多个工作线程和至少一个收包线程,每个工作线程配置有一个工作缓冲区。收包线程用于从DNS服务器的Linux内核的UDP缓冲区读取数据包,并分配到工作缓冲区;每个工作线程用于从与其对应的工作缓冲区读取数据包。通过上述配置,该DNS服务器中所有的工作线程不直接从linux内核的UDP缓冲区读取数据包,而是从工作缓冲区读取数据包,而工作缓冲区内的数据包是收包线程根据相应的规则进行分配的,因此数量会有所差异,以使工作线程能够处理不同数量的任务,从而解决了目前工作线程因需要收取固定数量的数据包而导致DNS服务器的效率较差的问题。

Description

一种DNS服务器及其线程控制方法和装置
技术领域
本发明涉及互联网技术领域,特别是涉及一种DNS服务器及其线程控制方法和装置
背景技术
DNS(Domain Name System,域名系统),指的是在互联网中将域名映射为IP地址的一套系统,能够使用户能够利用更容易记住的域名去访问互联网,而不用去记住不易记住的IP数串。DNS几乎可以说是目前所有线上服务的基础。在DNS系统中,域名的管理者需要搭建DNS服务器来处理DNS的查询请求。目前的DNS服务器应用程序架构中,DNS查询请求的网络数据包首先达到服务器中linux操作系统的UDP缓冲区,然后DNS应用层服务器的工作线程会从UDP缓冲区收取包来处理,每个线程单位时间内收取包的数量是相同的。
本申请的发明人在实际实施时发现,这种工作模式存在两个问题:由于数据包的大小不同,所需处理时间也就不同,但每个线程收取包的速度相同,从而导致每个线程实际处理的任务量不同,即有的线程因负担较大导致处理效率偏低,而有的线程因负担太小导致资源闲置,从而使DNS服务器的整体效率不够优化,当查询请求的量剧增时,会造成DNS服务器的性能无法满足需求。
发明内容
有鉴于此,本发明提供了一种DNS服务器及其线程控制方法和装置,以解决目前工作线程因需要收取固定数量的数据包而导致DNS服务器的效率较差的问题。
为了解决上述问题,本发明公开了一种DNS服务器,配置有多个工作线程和至少一个收包线程,每个所述工作线程配置有一个工作缓冲区,其中:
所述收包线程用于从所述DNS服务器的Linux内核的UDP缓冲区读取数据包,并分配到所述工作缓冲区;
每个所述工作线程用于从与其对应的工作缓冲区读取数据包。
每个所述工作缓冲区的长度一致;
所述工作缓冲区的长度大于所述收包线程每次所收取的数据包的数量。
本发明还提供了一种线程控制方法,应用于如上所述的DNS服务器,所述线程控制方法包括:
控制所述收包线程从所述UDP缓冲区读取预设数量的数据包;
检测所述收包线程所对应的多个所述工作缓冲区中每个工作缓冲区的使用率;
根据所述使用率向所述工作缓冲区中分配数据包。
可选的,所述根据所述使用率向所述工作缓冲区中分配数据包,包括:
从多个所述使用率中找到最小使用率,将所述最小使用率所对应的工作缓冲区作为目标缓冲区;
将部分或全部的数据包放入所述目标缓冲区内。
可选的,所述将部分或全部的数据包放入所述目标缓冲区内,包括:
当所述目标缓冲区的使用率小于第一预设阈值时,将本次收取的数据包全部放入所述目标缓冲区内;
当所述目标线程的使用率大于所述第一预设阈值、且小于第二预设阈值时,仅将本次收取的数据包中高优先级的数据包放入所述目标缓冲区内;
当所述目标线程的使用率大于所述第二预设阈值时,将本次所收取的数据包全部丢弃;
所述第二预设阈值大于所述第一预设阈值。
相应的,为了保证上述方法的实施,本发明还提供了一种线程控制装置,应用于如上所述的DNS服务器,所述线程控制装置包括:
数据读取控制模块,用于控制所述收包线程从所述UDP缓冲区读取预设数量的数据包;
使用率检测模块,用于检测所述收包线程所对应的多个所述工作缓冲区中每个工作缓冲区的使用率;
数据包分配模块,用于根据所述使用率向所述工作缓冲区中分配数据包。
可选的,所述数据包分配模块包括:
使用率比对单元,用于从多个所述使用率中找到最小使用率,将所述最小使用率所对应的工作缓冲区作为目标缓冲区;
数据包分配单元,用于将部分或全部数据包放入所述目标缓冲区内。
可选的,所述数据包分配单元包括:
第一分配子单元,用于当所述目标线程的使用率小于第一预设阈值时,将本次收取的数据包全部放入与所述目标缓冲区内;
第二分配子单元,用于当所述目标线程的使用率大于所述第一预设阈值、且小于第二预设阈值时,仅将本次收取的数据包中高优先级的数据包放入所述目标缓冲区内;
第三分配子单元,用于当所述目标线程的使用率大于所述第二预设阈值时,将本次所收取的数据包全部丢弃;
所述第二预设阈值大于所述第一预设阈值。
从上述技术方案可以看出,本发明提供了一种DNS服务器及其线程控制方法和装置,该DNS服务器配置有多个工作线程和至少一个收包线程,每个工作线程配置有一个工作缓冲区。收包线程用于从DNS服务器的Linux内核的UDP缓冲区读取数据包,并分配到工作缓冲区;每个工作线程用于从与其对应的工作缓冲区读取数据包。通过上述配置,该DNS服务器中所有的工作线程不直接从linux内核的UDP缓冲区读取数据包,而是从工作缓冲区读取数据包,而工作缓冲区内的数据包是收包线程根据相应的规则进行分配的,因此数量会有所差异,以使工作线程能够处理不同数量的任务,从而解决了目前工作线程因需要收取固定数量的数据包而导致DNS服务器的效率较差的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种DNS服务器的架构示意图;
图2为本发明实施例提供的一种线程控制方法的步骤流程图;
图3为本发明实施例提供的一种线程控制装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例提供的一种DNS服务器的架构示意图。
参照图1所示,本实施例提供的DNS服务器为基于Linux操作系统在物理服务器上所搭建,该DNS服务器配置有多个工作线程100和至少一个收包线程300,且每个工作线程配置有相应的工作缓冲区200。
该收包线程用于从该物理服务器的Linux内核的UDP缓冲区400内读取数据包,该物理服务器上搭建有上述DNS服务器。该收包线程对应与上述多个工作线程的全部或部分。
收包线程从UDP缓冲区读取到数据包后,根据预设的规则将数据包分配到其对应的工作线程的工作缓冲区内。每个工作线程则用于从自己的工作缓冲区中读取数据包进行处理。
这里预设规则的含义是指根据数据包的大小向工作缓冲区内分配数据包,对于较大的数据包可以向相应线程的工作缓冲区内少分配一些,而对于较小的数据包则可以多分配一些,从而保证每个工作线程的负担均衡一些。
另外,为了避免单一的收包线程造成收包速度不够,可能会成为整体系统的瓶颈,因此可以配置2-3收包线程进行收包作业。每个工作线程的缓冲区长度一致,且远大于收包线程每次收取的包数量的最大值。该收包线程还用于监测其对应的每个工作线程的使用率,并根据使用率向相应的工作线程配置的工作缓冲区内放置数据包。
从上述技术方案可以看出,本实施例提供了一种DNS服务器,其配置有多个工作线程和至少一个收包线程,每个工作线程配置有一个工作缓冲区。收包线程用于从DNS服务器的Linux内核的UDP缓冲区读取数据包,并分配到工作缓冲区;每个工作线程用于从与其对应的工作缓冲区读取数据包。通过上述配置,该DNS服务器中所有的工作线程不直接从linux内核的UDP缓冲区读取数据包,而是从工作缓冲区读取数据包,而工作缓冲区内的数据包是收包线程根据相应的规则进行分配的,因此数量会有所差异,以使工作线程能够处理不同数量的任务,从而解决了目前工作线程因需要收取固定数量的数据包而导致DNS服务器的效率较差的问题。
实施例二
图2为本发明实施例提供的一种线程控制方法的步骤流程图。
参照图2所示,本实施例提供的线程控制方法应用于上一实施例中所提供的DNS服务器,用于对其配置的工作线程和收包线程进行控制,该线程控制方法具体包括:
S101:控制收包线程UDP缓冲区读取预设数量的数据包。
即控制该收包线程循环从DNS服务器所处的物理服务器的Linux内核的UDP缓冲区读取数据包,所读取的数据包的数量固定,也可以根据实际需求和工作负荷进行确定。这里循环的意思是该收包线程在将读取的数据包发送到工作线程的工作缓冲区后再次从UDP缓冲区读取相应数量的数据包。
S102:检测每个工作线程对应的工作缓冲区的使用率。
每个收包线程对应有多个工作缓冲区,每个工作缓冲区则对应一个相应的工作线程。这里每个工作线程是指该收包线程对应的多个工作线程,在DNS服务器存在多个收包线程的情况下,每个收包线程对应的多个工作线程为DNS服务器中所有工作线程中的一部分。
在DNS服务器运行过程中,实时检测该收包线程对应的工作线程的工作缓冲区使用率。使用率可以看做该工作缓冲区所使用的容量占其总容量的百分比。
S103:根据使用率向相应工作缓冲区分配数据包。
在确定多个工作缓冲区中每个缓冲区的使用率后,从中选出使用率最小的工作缓冲区,使用率最小意味着其最闲,此时收包线程将从UDP缓冲区中读取的数据包向该使用率最小的工作缓冲区注入,从而实现对工作线程的工作量的平衡。
从上述技术方案可以看出,本实施例提供了一种线程控制方法,该方法应用于上一实施例中的DNS服务器,具体为控制所述收包线程从所述UDP缓冲区读取预设数量的数据包;检测所述收包线程所对应的多个所述工作缓冲区中每个工作缓冲区的使用率;根据所述使用率向所述工作缓冲区中分配数据包。通过根据使用率向相应工作缓冲区分配数据包,能够对工作线程的工作量实现平衡,从而可以避免工作线程之间的工作量不平衡,提高了DNS服务器的工作效率。
其中,根据使用率向相应工作缓冲区分配数据包具体的过程为:
首先,在得到所有工作线程所对应的工作缓冲区的使用率后,从该多个使用率中选取最小的使用率,并将该使用率最小的工作缓冲区定为目标缓冲区;然后,根据该目标缓冲区的使用率将全部或部分数据包放入到该目标缓冲区内。这里部分或全部放入目标缓冲区的方法如下所述:
1)当该目标线程的使用率小于第一预设阈值时,将收包线程本次收取的数据包全部放入到该目标缓冲区内。该第一预设阈值可以根据DNS服务器在具体工作时的工作效率确定,即使用率为第一预设阈值时,该工作线程可以较为高效地工作。例如,第一预设阈值可以选择85%。
2)当该目标线程的使用率大于第一预设阈值,且小于第二预设阈值时,将收包线程所收取的数据包进行区分,将优先级较低的数据包丢弃,仅将优先级较高的数据包放入该目标缓冲区。这里的第一预设阈值小于第二预设阈值,在第一预设阈值取值85%的情况下,第二预设阈值可以取大于该值的数值,如95%,但不应该取100%。
3)当目标线程的使用率大于第二预设阈值时,将本次收包线程所收取的数据包全部丢弃,以此避免DNS服务器负荷过大。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例三
图3为本发明实施例提供的一种线程控制装置的结构框图。
参照图3所示,本实施例提供的线程控制装置应用于实施例一中所提供的DNS服务器,用于对其配置的工作线程和收包线程进行控制,该线程控制装置具体包括数据读取控制模块10、使用率检测模块20和数据包分配模块30。
数据读取控制模块用于控制收包线程动UDP缓冲区读取预设数量的数据包。
即控制该收包线程循环从DNS服务器所处的物理服务器的Linux内核的UDP缓冲区读取数据包,所读取的数据包的数量固定,也可以根据实际需求和工作负荷进行确定。这里循环的意思是该收包线程在将读取的数据包发送到工作线程的工作缓冲区后再次从UDP缓冲区读取相应数量的数据包。
使用率检测模块用于检测每个工作线程对应的工作缓冲区的使用率。
每个收包线程对应有多个工作缓冲区,每个工作缓冲区则对应一个相应的工作线程。这里每个工作线程是指该收包线程对应的多个工作线程,在DNS服务器存在多个收包线程的情况下,每个收包线程对应的多个工作线程为DNS服务器中所有工作线程中的一部分。
在DNS服务器运行过程中,实时检测该收包线程对应的工作线程的工作缓冲区使用率。使用率可以看做该工作缓冲区所使用的容量占其总容量的百分比。
数据包分配模块用于根据使用率向相应工作缓冲区分配数据包。
在确定多个工作缓冲区中每个缓冲区的使用率后,从中选出使用率最小的工作缓冲区,使用率最小意味着其最闲,此时收包线程将从UDP缓冲区中读取的数据包向该使用率最小的工作缓冲区注入,从而实现对工作线程的工作量的平衡。
从上述技术方案可以看出,本实施例提供了一种线程控制方法,该方法应用于上一实施例中的DNS服务器,具体为控制所述收包线程从所述UDP缓冲区读取预设数量的数据包;检测所述收包线程所对应的多个所述工作缓冲区中每个工作缓冲区的使用率;根据所述使用率向所述工作缓冲区中分配数据包。通过根据使用率向相应工作缓冲区分配数据包,能够对工作线程的工作量实现平衡,从而可以避免工作线程之间的工作量不平衡,提高了DNS服务器的工作效率。
本实施例中,该数据包分配模块根据使用率向相应工作缓冲区分配数据包,该模块具体包括使用率对比单元和数据包分配单元。
使用率对比单元用于在得到所有工作线程所对应的工作缓冲区的使用率后,从该多个使用率中选取最小的使用率,并将该使用率最小的工作缓冲区定为目标缓冲区;数据包分配单元用于根据该目标缓冲区的使用率将全部或部分数据包放入到该目标缓冲区内。该数据包分配单元包括第一分配子单元、第二分配子单元和第三分配子单元。
第一分配子单元用于当该目标线程的使用率小于第一预设阈值时,将收包线程本次收取的数据包全部放入到该目标缓冲区内。该第一预设阈值可以根据DNS服务器在具体工作时的工作效率确定,即使用率为第一预设阈值时,该工作线程可以较为高效地工作。例如,第一预设阈值可以选择85%。
第二分配子单元用于当该目标线程的使用率大于第一预设阈值,且小于第二预设阈值时,将收包线程所收取的数据包进行区分,将优先级较低的数据包丢弃,仅将优先级较高的数据包放入该目标缓冲区。这里的第一预设阈值小于第二预设阈值,在第一预设阈值取值85%的情况下,第二预设阈值可以取大于该值的数值,如95%,但不应该取100%。
第三分配子单元用于当目标线程的使用率大于第二预设阈值时,将本次收包线程所收取的数据包全部丢弃,以此避免DNS服务器负荷过大。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种DNS服务器,其特征在于,配置有多个工作线程和至少一个收包线程,每个所述工作线程配置有一个工作缓冲区,其中:
所述收包线程用于从所述DNS服务器的Linux内核的UDP缓冲区读取数据包,并分配到所述工作缓冲区;
每个所述工作线程用于从与其对应的工作缓冲区读取数据包。
2.如权利要求1所述的DNS服务器,其特征在于,每个所述工作缓冲区的长度一致;
所述工作缓冲区的长度大于所述收包线程每次所收取的数据包的数量。
3.一种线程控制方法,应用于如权利要求1或2所述的DNS服务器,其特征在于,所述线程控制方法包括:
控制所述收包线程从所述UDP缓冲区读取预设数量的数据包;
检测所述收包线程所对应的多个所述工作缓冲区中每个工作缓冲区的使用率;
根据所述使用率向所述工作缓冲区中分配数据包。
4.如权利要求3所述的线程控制方法,其特征在于,所述根据所述使用率向所述工作缓冲区中分配数据包,包括:
从多个所述使用率中找到最小使用率,将所述最小使用率所对应的工作缓冲区作为目标缓冲区;
将部分或全部的数据包放入所述目标缓冲区内。
5.如权利要求4所述的线程控制方法,其特征在于,所述将部分或全部的数据包放入所述目标缓冲区内,包括:
当所述目标缓冲区的使用率小于第一预设阈值时,将本次收取的数据包全部放入所述目标缓冲区内;
当所述目标线程的使用率大于所述第一预设阈值、且小于第二预设阈值时,仅将本次收取的数据包中高优先级的数据包放入所述目标缓冲区内;
当所述目标线程的使用率大于所述第二预设阈值时,将本次所收取的数据包全部丢弃;
所述第二预设阈值大于所述第一预设阈值。
6.一种线程控制装置,应用于如权利要求1或2所述的DNS服务器,其特征在于,所述线程控制装置包括:
数据读取控制模块,用于控制所述收包线程从所述UDP缓冲区读取预设数量的数据包;
使用率检测模块,用于检测所述收包线程所对应的多个所述工作缓冲区中每个工作缓冲区的使用率;
数据包分配模块,用于根据所述使用率向所述工作缓冲区中分配数据包。
7.如权利要求6所述的线程控制装置,其特征在于,所述数据包分配模块包括:
使用率比对单元,用于从多个所述使用率中找到最小使用率,将所述最小使用率所对应的工作缓冲区作为目标缓冲区;
数据包分配单元,用于将部分或全部数据包放入所述目标缓冲区内。
8.如权利要求7所述的线程控制装置,其特征在于,所述数据包分配单元包括:
第一分配子单元,用于当所述目标线程的使用率小于第一预设阈值时,将本次收取的数据包全部放入与所述目标缓冲区内;
第二分配子单元,用于当所述目标线程的使用率大于所述第一预设阈值、且小于第二预设阈值时,仅将本次收取的数据包中高优先级的数据包放入所述目标缓冲区内;
第三分配子单元,用于当所述目标线程的使用率大于所述第二预设阈值时,将本次所收取的数据包全部丢弃;
所述第二预设阈值大于所述第一预设阈值。
CN201810070146.1A 2018-01-24 2018-01-24 一种dns服务器及其线程控制方法和装置 Pending CN108536535A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810070146.1A CN108536535A (zh) 2018-01-24 2018-01-24 一种dns服务器及其线程控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810070146.1A CN108536535A (zh) 2018-01-24 2018-01-24 一种dns服务器及其线程控制方法和装置

Publications (1)

Publication Number Publication Date
CN108536535A true CN108536535A (zh) 2018-09-14

Family

ID=63486022

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810070146.1A Pending CN108536535A (zh) 2018-01-24 2018-01-24 一种dns服务器及其线程控制方法和装置

Country Status (1)

Country Link
CN (1) CN108536535A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840142A (zh) * 2018-12-15 2019-06-04 平安科技(深圳)有限公司 基于云监控的线程控制方法、装置、电子设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905531A (zh) * 2006-08-11 2007-01-31 白杰 待发送数据的处理方法以及数据发送方法、装置
CN102073547A (zh) * 2010-12-17 2011-05-25 国家计算机网络与信息安全管理中心 一种多路服务器多缓冲区并行收包的性能优化方法
CN102469132A (zh) * 2010-11-15 2012-05-23 北大方正集团有限公司 从网站中多个不同ip的服务器抓取网页的方法及系统
CN103428301A (zh) * 2013-08-05 2013-12-04 北京神州绿盟信息安全科技股份有限公司 一种接口系统及其对数据包进行处理的方法
CN103428272A (zh) * 2013-07-16 2013-12-04 无限极(中国)有限公司 一种中间件线程的监控调度系统及方法
US20150016266A1 (en) * 2013-07-09 2015-01-15 Cristian Florin Dumitrescu Traffic Management with Ingress Control
US20160182380A1 (en) * 2014-12-22 2016-06-23 Telefonaktiebolaget L M Ericsson (Publ) Adaptive load balancing in packet processing
CN105868258A (zh) * 2015-12-28 2016-08-17 乐视网信息技术(北京)股份有限公司 爬虫系统
US20160301632A1 (en) * 2015-04-08 2016-10-13 Telefonaktiebolaget L M Ericsson (Publ) Method and system for burst based packet processing
US20160352867A1 (en) * 2015-05-27 2016-12-01 Elastic Beam, Inc. Systems and methods for api routing and security
CN106371921A (zh) * 2016-08-31 2017-02-01 成都科来软件有限公司 一种多线程分析的均衡分流方法
CN107135278A (zh) * 2017-07-06 2017-09-05 深圳市视维科技股份有限公司 一种高效的负载均衡器及负载均衡系统

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1905531A (zh) * 2006-08-11 2007-01-31 白杰 待发送数据的处理方法以及数据发送方法、装置
CN102469132A (zh) * 2010-11-15 2012-05-23 北大方正集团有限公司 从网站中多个不同ip的服务器抓取网页的方法及系统
CN102073547A (zh) * 2010-12-17 2011-05-25 国家计算机网络与信息安全管理中心 一种多路服务器多缓冲区并行收包的性能优化方法
US20150016266A1 (en) * 2013-07-09 2015-01-15 Cristian Florin Dumitrescu Traffic Management with Ingress Control
CN103428272A (zh) * 2013-07-16 2013-12-04 无限极(中国)有限公司 一种中间件线程的监控调度系统及方法
CN103428301A (zh) * 2013-08-05 2013-12-04 北京神州绿盟信息安全科技股份有限公司 一种接口系统及其对数据包进行处理的方法
US20160182380A1 (en) * 2014-12-22 2016-06-23 Telefonaktiebolaget L M Ericsson (Publ) Adaptive load balancing in packet processing
US20160301632A1 (en) * 2015-04-08 2016-10-13 Telefonaktiebolaget L M Ericsson (Publ) Method and system for burst based packet processing
US20160352867A1 (en) * 2015-05-27 2016-12-01 Elastic Beam, Inc. Systems and methods for api routing and security
CN105868258A (zh) * 2015-12-28 2016-08-17 乐视网信息技术(北京)股份有限公司 爬虫系统
CN106371921A (zh) * 2016-08-31 2017-02-01 成都科来软件有限公司 一种多线程分析的均衡分流方法
CN107135278A (zh) * 2017-07-06 2017-09-05 深圳市视维科技股份有限公司 一种高效的负载均衡器及负载均衡系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109840142A (zh) * 2018-12-15 2019-06-04 平安科技(深圳)有限公司 基于云监控的线程控制方法、装置、电子设备及存储介质
CN109840142B (zh) * 2018-12-15 2024-03-15 平安科技(深圳)有限公司 基于云监控的线程控制方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10466899B2 (en) Selecting controllers based on affinity between access devices and storage segments
US9104492B2 (en) Cloud-based middlebox management system
US9158586B2 (en) Systems and methods for managing cloud computing resources
TWI530875B (zh) 施加用以調度在虛擬機器之間的網路頻寬之政策
EP3053041B1 (en) Method, system, computer program and computer program product for monitoring data packet flows between virtual machines, vms, within a data centre
US9112809B2 (en) Method and apparatus for controlling utilization in a horizontally scaled software application
Yu et al. Towards bandwidth guarantee for virtual clusters under demand uncertainty in multi-tenant clouds
JP6881575B2 (ja) 資源割当システム、管理装置、方法およびプログラム
CN105159775A (zh) 基于负载均衡器的云计算数据中心的管理系统和管理方法
CN106209402B (zh) 一种虚拟网络功能的伸缩方法和设备
WO2019052225A1 (zh) 开放平台控制方法、系统、计算机设备和存储介质
KR20120063499A (ko) 엔터프라이즈 네트워크에서 할당된 클라우드 자원의 동적 로드 밸런싱 및 스케일링
CN108933829A (zh) 一种负载均衡方法及装置
Nazar et al. Modified shortest job first for load balancing in cloud-fog computing
Huang et al. Auto scaling virtual machines for web applications with queueing theory
WO2013082742A1 (zh) 资源调度方法、装置和系统
KR102389334B1 (ko) 클라우드 서비스를 위한 가상 머신 프로비저닝 시스템 및 방법
CN108536535A (zh) 一种dns服务器及其线程控制方法和装置
Onoue et al. Scheduling of parallel migration for multiple virtual machines
CN114866544B (zh) 云边环境中面向cpu异构集群的容器化微服务负载均衡方法
Kavyasri et al. Comparative study of scheduling algorithms to enhance the performance of virtual machines in cloud computing
Huang et al. Joint optimization of task mapping and routing for service provisioning in distributed datacenters
CN110545336A (zh) Ip地址替换方法、装置、计算机设备和存储介质
Jiang et al. Adia: Achieving high link utilization with coflow-aware scheduling in data center networks
CN110430236A (zh) 一种部署业务的方法以及调度装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180914