CN109117271A - 自动调节cpu负载的方法、存储介质及终端设备 - Google Patents
自动调节cpu负载的方法、存储介质及终端设备 Download PDFInfo
- Publication number
- CN109117271A CN109117271A CN201810919013.7A CN201810919013A CN109117271A CN 109117271 A CN109117271 A CN 109117271A CN 201810919013 A CN201810919013 A CN 201810919013A CN 109117271 A CN109117271 A CN 109117271A
- Authority
- CN
- China
- Prior art keywords
- packet loss
- rule
- cpu load
- traps
- adjustment
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种自动调节CPU负载的方法,包括:对进程进行监控;当所述进程被唤醒时,启动进程计时器开始计时;每隔预设的时间间隔检测所述进程计时器的值;根据所述进程计时器的值和预设的第一次数调整规则调整软中断处理进程的循环执行次数;当所述进程响应结束时,关闭所述进程计时器并将所述进程计时器的值置为0。相应的,本发明还公开了一种计算机可读存储介质及终端设备。采用本发明的技术方案能够解决网络流量较大时进程无法及时获得CPU资源的问题,实现CPU负载的自动调节。
Description
技术领域
本发明涉及计算机网络技术领域,尤其涉及一种自动调节CPU负载的方法、计算机可读存储介质及终端设备。
背景技术
在大数据流量造成网络设备的CPU高负载时,进程可能会因长时间获取不到CPU资源而无法正常响应,导致进程的相应功能失效,例如,设备用于WAN口拨号的PPPoE进程无法及时响应server的LCP request报文,导致链路心跳超时,使WAN口断线。
在传统路由器中,当网络流量较大导致CPU高负载时,用户可以通过配置TC(Traffic Control,流量控制)或者QoS(Quality of Service,服务质量)的方法降低网络的整体流量,从而降低CPU的负载;其中,TC主要指网络流量控制,是一种利用软件或硬件方式来实现对计算机网络流量的控制,从而延缓部分或所有数据包,使之符合用户所需的网络交通规则以及速率限制的一种主要形式;QoS指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务的能力,是网络的一种安全机制,也是用来解决网络延迟和阻塞等问题的一种技术。
TC和QoS提供不同的服务模型和流量控制算法,能很好地根据配置的规则限制网络中指定或者全部的流量,从而调节CPU负载,但是,TC和QoS只针对配置的规则生效,用户需求需要通过规则进行表达,而且规则通常都是用户手动配置,配置过程比较复杂。
发明内容
本发明实施例所要解决的技术问题在于,提供一种自动调节CPU负载的方法、计算机可读存储介质及终端设备,能够解决网络流量较大时进程无法及时获得CPU资源的问题,实现CPU负载的自动调节。
为了解决上述技术问题,本发明实施例提供了一种自动调节CPU负载的方法,包括:
对进程进行监控;
当所述进程被唤醒时,启动进程计时器开始计时;
每隔预设的时间间隔检测所述进程计时器的值;
根据所述进程计时器的值和预设的第一次数调整规则调整软中断处理进程的循环执行次数;
当所述进程响应结束时,关闭所述进程计时器并将所述进程计时器的值置为0。
进一步地,所述根据所述进程计时器的值和预设的第一次数调整规则调整软中断处理进程的循环执行次数,具体包括:
当所述进程计时器的值大于预设的时间阈值时,判断所述软中断处理进程的当前循环执行次数是否为1;
当所述软中断处理进程的当前循环执行次数不为1时,根据所述第一次数调整规则减少所述软中断处理进程的循环执行次数。
进一步地,所述第一次数调整规则为N=N’/2;其中,N表示调整后的循环执行次数,且1≤N≤Nmax;N’表示当前循环执行次数,且1≤N’≤Nmax;Nmax表示最大循环执行次数。
进一步地,所述方法还包括:
当检测到所述进程计时器的值为0时,根据预设的第二次数调整规则增加所述软中断处理进程的循环执行次数。
进一步地,所述第二次数调整规则为N=N’+1;其中,N表示调整后的循环执行次数,且1≤N≤Nmax;N’表示当前循环执行次数,且1≤N’≤Nmax;Nmax表示最大循环执行次数。
进一步地,所述方法还包括:
当所述软中断处理进程的当前循环执行次数为1时,根据预设的第一丢包率调整规则调整丢包率;
根据预设的丢包规则确定丢包种类和丢包数量;
根据调整后的丢包率、确定的丢包种类和丢包数量进行丢包处理。
进一步地,所述当所述软中断处理进程的当前循环执行次数为1时,根据预设的第一丢包率调整规则调整丢包率,具体包括:
当所述软中断处理进程的当前循环执行次数为1时,若连续K次检测到所述进程计时器的值均不为0,则根据所述第一丢包率调整规则增加丢包率;其中,K为正整数。
进一步地,所述第一丢包率调整规则为D=D’+2%;其中,D表示调整后的丢包率,且0≤D≤Dmax;D’表示当前丢包率,且0≤D’≤Dmax;Dmax表示最大丢包率。
进一步地,所述根据预设的丢包规则确定丢包种类和丢包数量,具体包括:
至少根据数据包的长度、数据包的类型、数据包所属的连接的流量以及当前丢包率确定丢包种类和丢包数量。
进一步地,所述方法还包括:
当检测到所述进程计时器的值为0时,根据预设的第二丢包率调整规则减少丢包率。
进一步地,所述第二丢包率调整规则为D=D’/2;其中,D表示调整后的丢包率,且0≤D≤Dmax;D’表示当前丢包率,且0≤D’≤Dmax;Dmax表示最大丢包率。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述任一项所述的自动调节CPU负载的方法。
本发明实施例还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现上述任一项所述的自动调节CPU负载的方法。
与现有技术相比,本发明实施例提供了一种自动调节CPU负载的方法,通过对进程进行监控,当进程被唤醒时,启动进程计时器开始计时,每隔预设的时间间隔检测进程计时器的值,根据进程计时器的值和预设的第一次数调整规则调整软中断处理进程的循环执行次数,当进程响应结束时,关闭进程计时器并将进程计时器的值置为0,解决了网络流量较大时进程无法及时获得CPU资源的问题,无需用户手动配置规则,实现了CPU负载的自动调节。
附图说明
图1是本发明提供的一种自动调节CPU负载的方法的一个优选实施例的流程图;
图2是本发明提供的一种自动调节CPU负载的方法的步骤S14的一个优选实施例的具体流程图;
图3是本发明提供的一种自动调节CPU负载的方法的步骤S14的另一个优选实施例的具体流程图;
图4是本发明提供的一种终端设备的一个优选实施例的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本技术领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,是本发明提供的一种自动调节CPU负载的方法的一个优选实施例的流程图,包括步骤S11至步骤S15:
步骤S11、对进程进行监控;
步骤S12、当所述进程被唤醒时,启动进程计时器开始计时;
步骤S13、每隔预设的时间间隔检测所述进程计时器的值;
步骤S14、根据所述进程计时器的值和预设的第一次数调整规则调整软中断处理进程的循环执行次数;
步骤S15、当所述进程响应结束时,关闭所述进程计时器并将所述进程计时器的值置为0。
本实施例为一种软中断动态调整机制(Softirq Dynamic Tuning,SDT),具体的,通过监控机制实时监控每一个进程的进程需求,当任意一个进程被唤醒时,启动该进程的进程计时器开始计时,并且每隔预先设置的时间间隔(优选为200ms)检测进程计时器的值,并根据进程计时器的值和预先设置的第一次数调整规则调整软中断处理进程的循环执行次数,当被唤醒的进程的响应结束时,相应关闭进程计时器并将进程计时器的值清零。
需要说明的是,进程在未被唤醒时处于阻塞状态,即睡眠状态,这种状态下的进程不会获得CPU资源,当进程接收到报文后会被socket唤醒,此时进程变为活跃状态,在进程获取到CPU资源后,就可以处理接收到的报文,在完成对报文的响应后再变为睡眠状态,因此,上述进程需求具体指进程在睡眠状态时需要被唤醒并处理报文的需求,响应结束具体指进程在接收到报文后完成对报文的处理,可能还会发出响应报文,本方案的判断标准是进程再次进入阻塞状态就判定进程完成响应,其中,进程计时器从进程接收到报文而被唤醒时开始计时,到进程完成响应后再次进入阻塞状态时结束计时,由于进程响应过程也需要占用CPU资源,在进程响应的过程中进程计时器仍然在计时,说明SDT调整没有结束,因此可以确保进程响应的过程也是及时的。
另外,进程接收到的报文和具体的进程有关,不同的进程会注册不同类型的socket,报文会按照类型交给socket,socket负责将报文交给进程从而唤醒进程。
例如,pppd进程需要ppp报文,dhcpd进程需要dhcp报文。以pppd进程为例,pppd进程在大部分情况下处于阻塞状态,当接收到ppp报文后socket会唤醒pppd进程,此时pppd进程变为活跃状态,在pppd进程获取到CPU资源后,便可以处理收到的ppp报文,处理完继续睡眠,那么pppd进程的需求就是接收ppp报文并处理ppp报文,如果pppd进程长时间都没有被唤醒或者没有完成对报文的处理,说明pppd进程的需求没有及时得到满足。
需要补充的是,网络设备(例如路由器)通过中断方式收发数据包,软中断处理进程负责实际的收包动作,默认情况下触发一次软中断会循环执行十次软中断处理进程,这一过程无法被其他进程打断,并且软中断处理进程会占用大量的CPU资源,在网络流量较大的情况下,进一步增加了CPU的负担,影响CPU的性能。
本发明实施例所提供的一种自动调节CPU负载的方法,通过进程计时器的值可以获得进程等待获取CPU资源的程度,并根据进程计时器的值和预先设置的第一次数调整规则调整软中断处理进程的循环执行次数,从而可以根据进程需求和等待时间调整软中断处理进程对CPU资源的占用,无需用户手动配置规则,实现了CPU负载的自动调节,并且解决了网络流量较大时进程无法及时获得CPU资源导致进程无法正常响应的问题,为进程的正常响应提供了保障。
参见图2所示,是本发明提供的一种自动调节CPU负载的方法的步骤S14的一个优选实施例的具体流程图,所述根据所述进程计时器的值和预设的第一次数调整规则调整软中断处理进程的循环执行次数,具体包括步骤S1401至步骤S1402:
步骤S1401、当所述进程计时器的值大于预设的时间阈值时,判断所述软中断处理进程的当前循环执行次数是否为1;
骤S1402当所述软中断处理进程的当前循环执行次数不为1时,根据所述第一次数调整规则减少所述软中断处理进程的循环执行次数。
具体的,由于每隔预先设置的时间间隔都会检测进程计时器的值,当检测到进程计时器的值大于预先设置的时间阈值时,判断软中断处理进程的当前循环执行次数是否为1,若不为1,则根据预先设置的第一次数调整规则减少软中断处理进程的循环执行次数。
需要说明的是,当根据软中断处理进程的当前循环执行次数循环执行完软中断处理进程后,如果进程计时器的值大于预先设置的时间阈值,则根据第一次数调整规则将软中断处理进程的循环执行次数减少到N1次,在相应循环执行N1次软中断处理进程之后,如果进程计时器的值仍然大于预先设置的时间阈值,则继续根据第一次数调整规则减少软中断处理进程的循环执行次数,以此类推,直至进程获得CPU资源并完成响应为止,或者直至软中断处理进程的循环执行次数减小到1为止。
作为优选方案,所述第一次数调整规则为N=N’/2;其中,N表示调整后的循环执行次数,且1≤N≤Nmax;N’表示当前循环执行次数,且1≤N’≤Nmax;Nmax表示最大循环执行次数。
需要说明的是,根据N=N’/2减少软中断处理进程的循环执行次数时,如果N’为奇数,获得的N为小数,则对N’/2进行取整,有N=[N’/2]。
另外,Nmax表示软中断处理进程的最大循环执行次数,优选为Nmax=10。
本发明实施例所提供的一种自动调节CPU负载的方法,通过减少软中断处理进程的循环执行次数,从而减少软中断处理进程对CPU资源的占用,降低CUP负载。
在另一个优选实施例中,所述方法还包括:
当检测到所述进程计时器的值为0时,根据预设的第二次数调整规则增加所述软中断处理进程的循环执行次数。
具体的,由于每隔预先设置的时间间隔都会检测进程计时器的值,当检测到进程计时器的值为0时,根据预先设置的第二次数调整规则增加软中断处理进程的循环执行次数。
需要说明的是,当检测到进程计时器的值为0时,表示进程已经获得CPU资源并完成响应,需要根据第二次数调整规则增加软中断处理进程的循环执行次数,每次检测到进程计时器的值为0就相应增加循环执行次数一次,以将软中断处理进程的循环执行次数恢复到默认值(例如恢复到Nmax=10),并且在循环执行次数的恢复过程中,如果检测到另一进程的进程计数器的值大于预先设置的时间阈值,同理,判断软中断处理进程的当前循环执行次数是否为1,若不为1,则根据第一次数调整规则减少软中断处理进程的循环执行次数,以降低CUP负载,使另一进程获得CPU资源。
作为优选方案,所述第二次数调整规则为N=N’+1;其中,N表示调整后的循环执行次数,且1≤N≤Nmax;N’表示当前循环执行次数,且1≤N’≤Nmax;Nmax表示最大循环执行次数。
需要说明的是,Nmax表示软中断处理进程的最大循环执行次数,优选为Nmax=10。
结合上述实施例,需要补充的是,软中断处理进程的循环执行次数的调整过程只能由一个进程触发,例如,进程A的进程计时器的值大于预先设置的时间阈值并触发了SDT,之后进程B的进程计时器的值也达到了预先设置的时间阈值,此时SDT不会再次触发,但是在进程A响应结束后,如果进程B仍然在等待,那么进程B就会立刻触发SDT。
参见图3所示,是本发明提供的一种自动调节CPU负载的方法的步骤S14的另一个优选实施例的具体流程图,所述方法还包括步骤S1402’至步骤S1404’:
步骤S1402’、当所述软中断处理进程的当前循环执行次数为1时,根据预设的第一丢包率调整规则调整丢包率;
步骤S1403’、根据预设的丢包规则确定丢包种类和丢包数量;
步骤S1404’、根据调整后的丢包率、确定的丢包种类和丢包数量进行丢包处理。
本实施例为一种流量控制调整机制(Active Flow Control,AFC),具体的,当判定软中断处理进程的当前循环执行次数为1时,根据预先设置的第一丢包率调整规则调整丢包率,并根据预先设置的丢包规则确定满足条件的丢包种类和丢包数量,从而根据调整后的丢包率、确定的丢包种类和丢包数量进程丢包处理。
需要说明的是,软中断处理进程的循环执行次数越小,进程越有可能获得CPU资源,当软中断处理进程的当前循环执行次数为1时,表示循环执行次数已经减少到最小值,但是进程仍然未获得CPU资源并完成响应,因此需要触发AFC。
本发明实施例所提供的一种自动调节CPU负载的方法,如果通过SDT的调整进程仍然未获得CPU资源并完成响应,则通过AFC进程丢包处理,从而降低网络流量,进而降低CPU负载。
在又一个优选实施例中,所述当所述软中断处理进程的当前循环执行次数为1时,根据预设的第一丢包率调整规则调整丢包率,具体包括:
当所述软中断处理进程的当前循环执行次数为1时,若连续K次检测到所述进程计时器的值均不为0,则根据所述第一丢包率调整规则增加丢包率;其中,K为正整数。
具体的,当触发AFC之后,如果连续K次(优选为6次)检测到进程计时器的值均不为0(表示AFC未解除),则根据预先设置的第一丢包率调整规则增加丢包率。
需要说明的是,当根据当前丢包率以及确定的丢包种类和丢包数量完成丢包处理后,如果进程计时器的值不为0,则根据第一丢包率调整规则增加丢包率到D1,在根据丢包率D1以及确定的丢包种类和丢包数量完成丢包处理后,如果进程计时器的值仍然不为0,则继续根据第一丢包率调整规则增加丢包率,以此类推,直至进程获得CPU资源并完成响应为止,或者直至丢包率调整到最大值为止。
作为优选方案,所述第一丢包率调整规则为D=D’+2%;其中,D表示调整后的丢包率,且0≤D≤Dmax;D’表示当前丢包率,且0≤D’≤Dmax;Dmax表示最大丢包率。
需要说明的是,Dmax表示最大丢包率,是AFC使用的常量,当丢包率增加到最大值Dmax之后,如果需要继续增加丢包率,则根据D=D’*2进行增加,直至增加到100%为止。
需要补充的是,丢包率一般表示为百分数,计算方法为:丢包触发时统计收到的总包数,然后连续丢掉符合条件的包。例如丢包率为2%时,丢包统计的方法为收到98个包后,丢弃接下来符合条件的2个包。
在又一个优选实施例中,所述根据预设的丢包规则确定丢包种类和丢包数量,具体包括:
至少根据数据包的长度、数据包的类型、数据包所属的连接的流量以及当前丢包率确定丢包种类和丢包数量。
具体的,AFC的原理是通过丢弃报文,造成流量下降,因此需要解决的两个问题,一是丢弃的报文的种类,即丢包种类,一般只能丢弃数据类的包,控制类的包或其他重要的报文是不能主动丢的;二是丢弃的报文的数量,即丢包数量,理想的情况是丢到核心进程的进程需求被满足即可,不能丢弃太多导致总流量大幅下降;其中:
(1)丢包种类的确定:长度较小的不丢(数据报文一般长度较长,可以丢弃);组播包不丢;发往路由器LAN端的包不丢,即需要本地处理的包不丢;HTTP包不丢;协议类型未知的包不丢;因此,主动丢弃的包一般为TCP数据包或/和UDP数据包。
(2)丢包数量的确定:网络中通常使用很多连接(conntrack)传输数据,而每个conntrack的数据流量是不同的;第一步,考虑每个conntrack的数据流量,针对流量最大的conntrack且只丢弃TCP数据包;第二步,当丢包率增加到最大值的一半时,在第一步的基础上增加丢弃UDP数据包;第三步,当丢包率增加到最大值时,持续一定时间还未解除AFC,在第二步的基础上不考虑每个conntrack的数据流量,只按照当前的丢包率进行丢包处理,此时所有的conntrack上的满足条件的报文都有可能被丢弃;第四步,在第三步的条件满足后,持续一定时间仍未解除AFC,丢包率开始翻倍,即根据D=D’*2进行增加,直至增加到100%为止,也就是丢掉所有的TCP数据包和所有的UDP数据包。
需要说明的是,由于在接收数据包的过程中,驱动是软件处理包的第一个环节,如果一个包需要被丢弃,那么一开始就丢掉可以避免后续对它的处理,从而可以减少资源消耗,因此,为了使AFC能用最小的代价工作,AFC的逻辑需要在以太网驱动中生效。
本发明实施例所提供的一种自动调节CPU负载的方法,根据预先设置的丢包规则确定丢包种类和丢包数量,限制流量时整体流量比较平稳,不会出现大幅抖动,并且可以保证尽量不丢包。
在又一个优选实施例中,所述方法还包括:
当检测到所述进程计时器的值为0时,根据预设的第二丢包率调整规则减少丢包率。
具体的,由于每隔预先设置的时间间隔都会检测进程计时器的值,当检测到进程计时器的值为0时(表示AFC解除),根据预先设置的第二丢包率调整规则减少丢包率。
作为优选方案,所述第二丢包率调整规则为D=D’/2;其中,D表示调整后的丢包率,且0≤D≤Dmax;D’表示当前丢包率,且0≤D’≤Dmax;Dmax表示最大丢包率。
需要说明的是,AFC解除后,每次检测到进程计时器的值为0都相应减少丢包率一次,以将丢包率恢复到初始状态(例如恢复到D=0),和SDT的调整方式类似,不是在进程需求被满足后立刻回到初始状态,主要的考虑是可能存在多个进程均等待CPU资源,某个进程触发SDT+AFC并获得CPU资源后,如果立刻回到初始状态,其他进程就需要重新触发执行SDT+AFC的调整过程,因为SDT+AFC本身也是一个逐步递增的动态调整过程,就可能导致部分进程等待时间过长,如果是AFC解除后缓慢恢复,则其他进程可以继续触发,更容易获得CPU资源,从而减少进程的等待时间。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述任一实施例所述的自动调节CPU负载的方法。
本发明实施例还提供了一种终端设备,参见图4所示,是本发明提供的一种终端设备的一个优选实施例的结构框图,包括处理器10、存储器20以及存储在所述存储器20中且被配置为由所述处理器10执行的计算机程序,所述处理器10在执行所述计算机程序时实现上述任一实施例所述的自动调节CPU负载的方法。
优选地,所述计算机程序可以被分割成一个或多个模块/单元(如计算机程序1、计算机程序2、······),所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器10执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。
所述处理器10可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以是微处理器,或者所述处理器10也可以是任何常规的处理器,所述处理器10是所述终端设备的控制中心,利用各种接口和线路连接所述终端设备的各个部分。
所述存储器20主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、至少一个功能所需的应用程序等,数据存储区可存储相关数据等。此外,所述存储器20可以是高速随机存取存储器,还可以是非易失性存储器,例如插接式硬盘,智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡和闪存卡(Flash Card)等,或所述存储器20也可以是其他易失性固态存储器件。
需要说明的是,上述终端设备可包括,但不仅限于,处理器、存储器,本领域技术人员可以理解,图4结构框图仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。
综上,本发明实施例所提供的一种自动调节CPU负载的方法、计算机可读存储介质及终端设备,根据进程需求和等待时间并通过SDT调整软中断处理进程对CPU资源的占用,并在经过SDT调整后进程仍然无法获得CPU资源时通过AFC调整网络流量,无需用户手动配置规则,实现了CPU负载的自动调节,同时解决了网络流量较大时进程无法及时获得CPU资源导致进程无法正常响应的问题,为进程的正常响应提供了保障。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (13)
1.一种自动调节CPU负载的方法,其特征在于,包括:
对进程进行监控;
当所述进程被唤醒时,启动进程计时器开始计时;
每隔预设的时间间隔检测所述进程计时器的值;
根据所述进程计时器的值和预设的第一次数调整规则调整软中断处理进程的循环执行次数;
当所述进程响应结束时,关闭所述进程计时器并将所述进程计时器的值置为0。
2.如权利要求1所述的自动调节CPU负载的方法,其特征在于,所述根据所述进程计时器的值和预设的第一次数调整规则调整软中断处理进程的循环执行次数,具体包括:
当所述进程计时器的值大于预设的时间阈值时,判断所述软中断处理进程的当前循环执行次数是否为1;
当所述软中断处理进程的当前循环执行次数不为1时,根据所述第一次数调整规则减少所述软中断处理进程的循环执行次数。
3.如权利要求2所述的自动调节CPU负载的方法,其特征在于,所述第一次数调整规则为N=N’/2;其中,N表示调整后的循环执行次数,且1≤N≤Nmax;N’表示当前循环执行次数,且1≤N’≤Nmax;Nmax表示最大循环执行次数。
4.如权利要求2所述的自动调节CPU负载的方法,其特征在于,所述方法还包括:
当检测到所述进程计时器的值为0时,根据预设的第二次数调整规则增加所述软中断处理进程的循环执行次数。
5.如权利要求4所述的自动调节CPU负载的方法,其特征在于,所述第二次数调整规则为N=N’+1;其中,N表示调整后的循环执行次数,且1≤N≤Nmax;N’表示当前循环执行次数,且1≤N’≤Nmax;Nmax表示最大循环执行次数。
6.如权利要求2所述的自动调节CPU负载的方法,其特征在于,所述方法还包括:
当所述软中断处理进程的当前循环执行次数为1时,根据预设的第一丢包率调整规则调整丢包率;
根据预设的丢包规则确定丢包种类和丢包数量;
根据调整后的丢包率、确定的丢包种类和丢包数量进行丢包处理。
7.如权利要求6所述的自动调节CPU负载的方法,其特征在于,所述当所述软中断处理进程的当前循环执行次数为1时,根据预设的第一丢包率调整规则调整丢包率,具体包括:
当所述软中断处理进程的当前循环执行次数为1时,若连续K次检测到所述进程计时器的值均不为0,则根据所述第一丢包率调整规则增加丢包率;其中,K为正整数。
8.如权利要求7所述的自动调节CPU负载的方法,其特征在于,所述第一丢包率调整规则为D=D’+2%;其中,D表示调整后的丢包率,且0≤D≤Dmax;D’表示当前丢包率,且0≤D’≤Dmax;Dmax表示最大丢包率。
9.如权利要求6所述的自动调节CPU负载的方法,其特征在于,所述根据预设的丢包规则确定丢包种类和丢包数量,具体包括:
至少根据数据包的长度、数据包的类型、数据包所属的连接的流量以及当前丢包率确定丢包种类和丢包数量。
10.如权利要求6所述的自动调节CPU负载的方法,其特征在于,所述方法还包括:
当检测到所述进程计时器的值为0时,根据预设的第二丢包率调整规则减少丢包率。
11.如权利要求10所述的自动调节CPU负载的方法,其特征在于,所述第二丢包率调整规则为D=D’/2;其中,D表示调整后的丢包率,且0≤D≤Dmax;D’表示当前丢包率,且0≤D’≤Dmax;Dmax表示最大丢包率。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求1至11中任一项所述的自动调节CPU负载的方法。
13.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如权利要求1至11中任一项所述的自动调节CPU负载的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810919013.7A CN109117271B (zh) | 2018-08-10 | 2018-08-10 | 自动调节cpu负载的方法、存储介质及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810919013.7A CN109117271B (zh) | 2018-08-10 | 2018-08-10 | 自动调节cpu负载的方法、存储介质及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117271A true CN109117271A (zh) | 2019-01-01 |
CN109117271B CN109117271B (zh) | 2021-03-23 |
Family
ID=64853210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810919013.7A Expired - Fee Related CN109117271B (zh) | 2018-08-10 | 2018-08-10 | 自动调节cpu负载的方法、存储介质及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117271B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021052187A1 (zh) * | 2019-09-18 | 2021-03-25 | Oppo广东移动通信有限公司 | 基于超声波的丢帧处理方法、装置、移动终端及存储介质 |
CN112579210A (zh) * | 2020-12-30 | 2021-03-30 | 上海众源网络有限公司 | 一种应用程序控制方法及装置 |
CN116225198A (zh) * | 2023-04-25 | 2023-06-06 | 北京博上网络科技有限公司 | 一种cpu负载控制方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080172668A1 (en) * | 2007-01-12 | 2008-07-17 | Tzruya Yoav M | Profile-based cpu/core affinity |
CN101436146A (zh) * | 2008-12-15 | 2009-05-20 | 中兴通讯股份有限公司 | 动态调节远程设备管理进程的优先级的方法及系统 |
US20090249352A1 (en) * | 2008-03-25 | 2009-10-01 | Hohensee Paul H | Resource Utilization Monitor |
CN101662800A (zh) * | 2009-09-08 | 2010-03-03 | 北京邮电大学 | 支持含有软服务质量业务的多业务传输的资源分配方法 |
CN102117240A (zh) * | 2009-12-31 | 2011-07-06 | 腾讯科技(深圳)有限公司 | 一种获取进程阻塞信息的方法及装置 |
CN103634130A (zh) * | 2012-08-23 | 2014-03-12 | 深圳市共进电子股份有限公司 | 网络终端设备的自我保护方法和系统及网络终端设备 |
CN104978006A (zh) * | 2015-05-19 | 2015-10-14 | 中国科学院信息工程研究所 | 一种多线程模式下的低功耗空闲等待方法 |
CN106506392A (zh) * | 2016-12-19 | 2017-03-15 | 深圳创维数字技术有限公司 | 一种网络拥塞处理方法及装置 |
CN107872401A (zh) * | 2017-12-22 | 2018-04-03 | 成都飞鱼星科技股份有限公司 | 一种网络关键业务保障方法及装置 |
-
2018
- 2018-08-10 CN CN201810919013.7A patent/CN109117271B/zh not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080172668A1 (en) * | 2007-01-12 | 2008-07-17 | Tzruya Yoav M | Profile-based cpu/core affinity |
US20090249352A1 (en) * | 2008-03-25 | 2009-10-01 | Hohensee Paul H | Resource Utilization Monitor |
CN101436146A (zh) * | 2008-12-15 | 2009-05-20 | 中兴通讯股份有限公司 | 动态调节远程设备管理进程的优先级的方法及系统 |
CN101662800A (zh) * | 2009-09-08 | 2010-03-03 | 北京邮电大学 | 支持含有软服务质量业务的多业务传输的资源分配方法 |
CN102117240A (zh) * | 2009-12-31 | 2011-07-06 | 腾讯科技(深圳)有限公司 | 一种获取进程阻塞信息的方法及装置 |
CN103634130A (zh) * | 2012-08-23 | 2014-03-12 | 深圳市共进电子股份有限公司 | 网络终端设备的自我保护方法和系统及网络终端设备 |
CN104978006A (zh) * | 2015-05-19 | 2015-10-14 | 中国科学院信息工程研究所 | 一种多线程模式下的低功耗空闲等待方法 |
CN106506392A (zh) * | 2016-12-19 | 2017-03-15 | 深圳创维数字技术有限公司 | 一种网络拥塞处理方法及装置 |
CN107872401A (zh) * | 2017-12-22 | 2018-04-03 | 成都飞鱼星科技股份有限公司 | 一种网络关键业务保障方法及装置 |
Non-Patent Citations (1)
Title |
---|
熊安萍 等: "优化Linux网络处理性能的软中断处理机制", 《计算机应用》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021052187A1 (zh) * | 2019-09-18 | 2021-03-25 | Oppo广东移动通信有限公司 | 基于超声波的丢帧处理方法、装置、移动终端及存储介质 |
CN112579210A (zh) * | 2020-12-30 | 2021-03-30 | 上海众源网络有限公司 | 一种应用程序控制方法及装置 |
CN116225198A (zh) * | 2023-04-25 | 2023-06-06 | 北京博上网络科技有限公司 | 一种cpu负载控制方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109117271B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764215B2 (en) | Programmable broadband gateway hierarchical output queueing | |
CN108616458B (zh) | 客户端设备上调度分组传输的系统和方法 | |
KR102284467B1 (ko) | 네트워크 디바이스에서의 수신된 패킷의 처리와 연관된 전력 관리 기법 | |
US9860147B2 (en) | Method and device for generating CNM | |
US9054973B2 (en) | Method and system for Ethernet congestion management | |
US8661167B2 (en) | DMA (direct memory access) coalescing | |
US9247449B2 (en) | Reducing interarrival delays in network traffic | |
WO2015169048A1 (zh) | 队列管理方法和装置 | |
US10080022B2 (en) | Calibration system for adaptive media encoder | |
CN107171969A (zh) | 一种数据传输方法、装置及系统 | |
WO2018036007A1 (zh) | 网络数据接收的处理方法及装置、存储介质 | |
US20160261512A1 (en) | Method for controlling buffering of packets in a communication network | |
CN107547442B (zh) | 数据传输缓存队列分配方法及装置 | |
CN109117271A (zh) | 自动调节cpu负载的方法、存储介质及终端设备 | |
CN113315720B (zh) | 一种数据流控制方法、系统及设备 | |
CN108965066B (zh) | 一种对传输路径进行探测的方法和装置 | |
CN109218227A (zh) | 一种网络数据包处理方法和装置 | |
CN115102905B (zh) | 一种ecn水线调整方法及装置 | |
CN104852863A (zh) | 一种共享缓存交换机中的动态阈值管理方法及装置 | |
JP2000083053A (ja) | プログラム内蔵方式パケット処理装置 | |
US20190004594A1 (en) | Network-driven, packet context-aware power management for client-server architecture | |
CN112491735A (zh) | 一种流量控制方法、装置、设备和计算机可读存储介质 | |
US20130329558A1 (en) | Physical layer burst absorption | |
US11646971B2 (en) | Limiting backpressure with bad actors | |
CN108920403A (zh) | 基于mcu串口通信的控制方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210323 |
|
CF01 | Termination of patent right due to non-payment of annual fee |