CN117687790A - 基于旁路式动态限制Linux进程CPU资源占用的方法及*** - Google Patents
基于旁路式动态限制Linux进程CPU资源占用的方法及*** Download PDFInfo
- Publication number
- CN117687790A CN117687790A CN202311796178.7A CN202311796178A CN117687790A CN 117687790 A CN117687790 A CN 117687790A CN 202311796178 A CN202311796178 A CN 202311796178A CN 117687790 A CN117687790 A CN 117687790A
- Authority
- CN
- China
- Prior art keywords
- cpu
- weight
- occupation
- dynamically
- memory
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 169
- 230000008569 process Effects 0.000 title claims abstract description 128
- 230000000670 limiting effect Effects 0.000 title claims abstract description 30
- 238000011112 process operation Methods 0.000 claims abstract description 8
- 238000012544 monitoring process Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000013468 resource allocation Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 abstract description 5
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000011156 evaluation Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于旁路式动态限制Linux进程CPU资源占用的方法及***,所述方法包括:监控进程占用CPU情况;当存在进程占用CPU超过预设阈值时,初始所述进程的cgroups,计算该进程的综合权重并根据该权重得出进程运行的最大份额;绕过用户空间直接修改内核资源模块,通知CPU cgroups控制器限制所述进程的CPU占用。通过本公开的处理方案,能够使终端安全软件适配各类性能不同的主机,动态管理进程CPU。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于旁路式动态限制Linux进程CPU资源占用的方法及***。
背景技术
Linux***上旁路式动态限制进程CPU是终端安全***的一个主要功能项。主要的应用场景是根据不同负载情况动态控制安全***本身在不同性能主机上的CPU占用和阻止进程恶意占用CPU资源。
传统的解决方式是基于调度进程参数niceness或基于用户空间的cpulimit工具来进行限制CPU。
基于niceness的缺点:Nice值是相对于其他进程的,而不是绝对的资源限制。因此,在高负载***中,即使设置了较低的Nice值,仍然可能受到其他因素的影响,导致限制未达预期。
基于用户空间的cpulimit工具:由于受制于cpulimit自身技术方案的限制,会导致操作的进程性能下降,因为进程被周期性地挂起和恢复,导致任务的执行时间变长。同时,cpulimit不支持将进程绑定到特定的CPU核心上,因此无法在多核***中实现精确的资源分配。
由此可见,上述现有的资源限定方法在使用上,显然仍存在有不便与缺陷,而亟待加以进一步改进。如何能创设一种新的CPU资源占用限定方法,成为当前业界急需改进的目标。
发明内容
有鉴于此,本公开实施例提供一种基于旁路式动态限制Linux进程CPU资源占用的方法,至少部分解决现有技术中存在的问题。
第一方面,本公开实施例提供了一种基于旁路式动态限制Linux进程CPU资源占用的方法,所述方法包括以下步骤:
监控进程占用CPU情况;
当存在进程占用CPU超过预设阈值时,初始所述进程的cgroups,计算该进程的综合权重并根据该权重得出进程运行的最大份额;
绕过用户空间直接修改内核资源模块,通知CPU cgroups控制器限制所述进程的CPU占用。
根据本公开实施例的一种具体实现方式,所述通知CPU cgroups控制器限制所述进程的CPU占用,包括:
实时操作cgroups,根据***的负载变化来动态调整进程CPU占用份额。
根据本公开实施例的一种具体实现方式,所述动态调整进程CPU占用份额,包括:
获取每个进程的网络使用情况、IO使用情况、内存使用情况和CPU使用情况;
预设网络使用情况、IO使用情况、内存使用情况和CPU使用情况的权重值;
基于所述权重值分别计算每个进程的综合权重;
根据每个进程的综合权重和预设的最大的总权重阈值,调整每个进程的CPU占用份额分配。
根据本公开实施例的一种具体实现方式,基于以下公式计算每个进程的综合权重:
total_weight=w_network*network_usage+w_io*io_usage+w_memory*memory_usage+w_cpu*cpu_usage
其中,total_weight为综合权重;w_network为网络使用情况权重;network_usage为网络使用情况;w_io为IO使用情况权重;io_usage为IO使用情况;w_memory为内存使用情况权重;memory_usage为内存使用情况;w_cpu为CPU使用情况权重;cpu_usage为CPU使用情况。
根据本公开实施例的一种具体实现方式,基于以下公式调整每个进程的CPU占用份额分配:
part=(total_weight/max_total_weight)*base_part
其中,part为该进程运行的最大CPU份额;base_part是预设的基本的CPU份额单位;max_total_weight为预设的最大的总权重阈值;
将part与max_total_weight*base_part的比值作为cgroup时间比例的权重比,通过操作***提供的通知机制传入当前进程的Cgroup中实现调整占用份额。
第二方面,本公开实施例提供了一种基于旁路式动态限制Linux进程CPU资源占用的***,所述***包括:
监控模块,被配置用于监控进程占用CPU情况;
判断模块,被配置用于当存在进程占用CPU超过预设阈值时,初始所述进程的cgroups,计算该进程的综合权重并根据该权重得出进程运行的最大份额;
资源调配模块,被配置用于绕过用户空间直接修改内核资源模块,通知CPUcgroups控制器限制所述进程的CPU占用。
根据本公开实施例的一种具体实现方式,所述***还包括:
调整模块,被配置用于实时操作cgroups,根据***的负载变化来动态调整进程CPU占用份额。
第三方面,本公开实施例还提供了一种电子设备,该电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器前述第一方面或第一方面的任一实现方式中的任一项所述的基于旁路式动态限制Linux进程CPU资源占用的方法。
第四方面,本公开实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令当由至少一个处理器执行时使所述至少一个处理器执行前述第一方面或第一方面的任一实现方式中的基于旁路式动态限制Linux进程CPU资源占用的方法。
第五方面,本公开实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使该计算机执行前述第一方面或第一方面的任一实现方式中的基于旁路式动态限制Linux进程CPU资源占用的方法。
本公开实施例中的基于旁路式动态限制Linux进程CPU资源占用的方法,能够使终端安全软件适配各类性能不同的主机,提供足够的性能保障主机安全,并且可以动态管理进程CPU,阻止恶意进程占用过多CPU资源。
附图说明
上述仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,以下结合附图与具体实施方式对本发明作进一步的详细说明。
图1为本公开实施例提供的一种基于旁路式动态限制Linux进程CPU资源占用的方法流程示意图;
图2为本公开实施例提供的一种基于旁路式动态限制Linux进程CPU资源占用的方法流程框图;
图3为本公开实施例提供的一种控制进程CPU流程示意图;
图4为本公开实施例提供的一种基于旁路式动态限制Linux进程CPU资源占用的***结构示意图;以及
图5为本公开实施例提供的电子设备示意图。
具体实施方式
下面结合附图对本公开实施例进行详细描述。
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其他方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其他结构及/或功能性实施此设备及/或实践此方法。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
随着电子信息化的快速发展,对于一个终端安全***来说,不仅要限制本***安装在各类性能不同的主机上的CPU资源使用情况,还要防止进程恶意占用主机CPU资源。部分安全机构为了降低控制CPU资源的技术难度,直接基于在用户空间实现限制,这会带来限制精度不够问题,特别是在***负载特别高的情况下,并且缺乏动态实时性,无法达到根据***负载情况立即采取限制行为的目的。
本发明实施例提供了一种基于旁路式动态限制Linux进程CPU资源占用的方法,以cgroups为基础组件,并在此基础上增加了“动态限制机制”,以保证限制的精确性和可靠性,最大优势是绕过用户空间直接与内核资源模块进行交互,且能做到高精确度、高实时性的限制效果。
本发明的原理是利用cgroups(Control Groups,一种调节进程对硬件使用的内核机制)在进程启动时就与内核资源模块进程通信,根据终端客户端检测***负载情况、进程资源恶意占用行为,便可实时动态的改变该进程对CPU资源的占用。
更具体的,终端负载监控***实时监控占用CPU过高的进程,并绕过用户空间直接修改内核资源模块。使限制CPU资源的操作变得高效。且cgroups支持在运行时动态调整资源限制,因此终端负载监控***实时操作cgroups,根据***的负载变化来重新分配资源。
旁路式:绕过Linux用户空间,直接与内核建立通信。
图1为本公开实施例提供的基于旁路式动态限制Linux进程CPU资源占用的方法流程的示意图。
图2为与图1对应的基于旁路式动态限制Linux进程CPU资源占用的方法流程框图。
图3为与图1对应的控制进程CPU流程示意图。
如图1所示,在步骤S110处,监控进程占用CPU情况。
在本发明实施例中,
更具体地,终端负载监控***是否检测到有进程占用CPU过高。
更具体地,接下来转到步骤S120。
在步骤S120处,当存在进程占用CPU超过预设阈值时,初始所述进程的cgroups,计算该进程的综合权重并根据该权重得出进程运行的最大份额。
更具体地,若是则在内存内核文件***初始该进程的cgroups。
接下来转到步骤S130。
在步骤S130处,绕过用户空间直接修改内核资源模块,通知CPU cgroups控制器限制所述进程的CPU占用。
更具体地,内存内核文件不需要用户态与内核态的页表转换,内核可以直接访问。内核资源模块监视内存变动,通知CPU cgroups控制器限制该进程CPU占用。
在本发明实施例中,所述通知CPU cgroups控制器限制所述进程的CPU占用,包括:实时操作cgroups,根据***的负载变化来动态调整进程CPU占用份额。
在本发明实施例中,所述动态调整进程CPU占用份额,包括:获取每个进程的网络使用情况、IO使用情况、内存使用情况和CPU使用情况;预设网络使用情况、IO使用情况、内存使用情况和CPU使用情况的权重值;基于所述权重值分别计算每个进程的综合权重;根据每个进程的综合权重和预设的最大的总权重阈值,调整每个进程的CPU占用份额分配。
在本发明实施例中,基于以下公式计算每个进程的综合权重:total_weight=w_network*network_usage+w_io*io_usage+w_memory*memory_usage+w_cpu*cpu_usage
其中,total_weight为综合权重;w_network为网络使用情况权重;network_usage为网络使用情况;w_io为IO使用情况权重;io_usage为IO使用情况;w_memory为内存使用情况权重;memory_usage为内存使用情况;w_cpu为CPU使用情况权重;cpu_usage为CPU使用情况。
在本发明实施例中,基于以下公式调整每个进程的CPU占用份额分配:
part=(total_weight/max_total_weight)*base_part
其中,part为该进程运行的最大CPU份额;base_part是预设的基本的CPU份额单位;max_total_weight为预设的最大的总权重阈值;
将part与max_total_weight*base_part的比值作为cgroup时间比例的权重比,通过操作***提供的通知机制传入当前进程的Cgroup中实现调整占用份额。
更具体地,算法描述如下:
1、对于每个进程,收集并计算以下数据:
网络使用情况(network_usage)
IO使用情况(io_usage)
内存使用情况(memory_usage)
CPU使用情况(cpu_usage)
2、为每个指标(网络、IO、内存、CPU)分别设置权重(w_network,w_io,w_memory,w_cpu),表示其重要程度。
3、计算每个进程的综合权重(total_weight):
total_weight=w_network*network_usage+w_io*io_usage+w_memory*memory_usage+w_cpu*cpu_usage
4、根据***资源的当前状态(如CPU利用率),设定一些阈值,即一个最大的总权重(max_total_weight)来限制总资源占用。
5、根据综合权重和阈值,调整每个进程的CPU占用份额分配:
part=(total_weight/max_total_weight)*base_part
其中,base_part是一个基本的CPU份额单位,可以根据实际情况调整。
这个算法的核心思想是,根据进程的不同使用情况,使用加权的方式计算综合权重,并根据总权重的比例来分配CPU占用份额。
本发明提出的基于旁路式动态限制Linux进程CPU资源占用的方法通过cgroups的高精确度限制进程占用CPU,并基于终端负载监控***的动态限制,保护在性能各异的终端主机上终端安全程序不会占据大量CPU资源,保证终端主机本身的任务有效执行。
图4示出了本发明提供的基于旁路式动态限制Linux进程CPU资源占用的***400,包括监控模块410、判断模块420和资源调配模块430。
监控模块410用于监控进程占用CPU情况;
判断模块420用于当存在进程占用CPU超过预设阈值时,初始所述进程的cgroups,计算该进程的综合权重并根据该权重得出进程运行的最大份额;
资源调配模块430用于绕过用户空间直接修改内核资源模块,通知CPU cgroups控制器限制所述进程的CPU占用。
在本发明实施例中,所述***还包括:
调整模块,被配置用于实时操作cgroups,根据***的负载变化来动态调整进程CPU占用份额。
参见图5,本公开实施例还提供了一种电子设备50,该电子设备包括:
至少一个处理器;以及,
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行前述方法实施例中的基于旁路式动态限制Linux进程CPU资源占用的方法。
本公开实施例还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述方法实施例中的基于旁路式动态限制Linux进程CPU资源占用的方法。
本公开实施例还提供了一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使该计算机执行前述方法实施例中的基于旁路式动态限制Linux进程CPU资源占用的方法。
下面参考图5,其示出了适于用来实现本公开实施例的电子设备50的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备50可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备50操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、图像传感器、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备50与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种装置的电子设备50,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。
或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种基于旁路式动态限制Linux进程CPU资源占用的方法,其特征在于,所述方法包括以下步骤:
监控进程占用CPU情况;
当存在进程占用CPU超过预设阈值时,初始所述进程的cgroups,计算该进程的综合权重并根据该权重得出进程运行的最大份额;
绕过用户空间直接修改内核资源模块,通知CPU cgroups控制器限制所述进程的CPU占用。
2.根据权利要求1所述的基于旁路式动态限制Linux进程CPU资源占用的方法,其特征在于,所述通知CPU cgroups控制器限制所述进程的CPU占用,包括:
实时操作cgroups,根据***的负载变化来动态调整进程CPU占用份额。
3.根据权利要求2所述的基于旁路式动态限制Linux进程CPU资源占用的方法,其特征在于,所述动态调整进程CPU占用份额,包括:
获取每个进程的网络使用情况、IO使用情况、内存使用情况和CPU使用情况;
预设网络使用情况、IO使用情况、内存使用情况和CPU使用情况的权重值;
基于所述权重值分别计算每个进程的综合权重;
根据每个进程的综合权重和预设的最大的总权重阈值,调整每个进程的CPU占用份额分配。
4.根据权利要求3所述的基于旁路式动态限制Linux进程CPU资源占用的方法,其特征在于,基于以下公式计算每个进程的综合权重:
total_weight=w_network*network_usage+w_io*io_usage+w_memory*memory_usage+w_cpu*cpu_usage
其中,total_weight为综合权重;w_network为网络使用情况权重;network_usage为网络使用情况;w_io为IO使用情况权重;io_usage为IO使用情况;w_memory为内存使用情况权重;memory_usage为内存使用情况;w_cpu为CPU使用情况权重;cpu_usage为CPU使用情况。
5.根据权利要求3所述的基于旁路式动态限制Linux进程CPU资源占用的方法,其特征在于,基于以下公式调整每个进程的CPU占用份额分配:
part=(total_weight/max_total_weight)*base_part
其中,part为该进程运行的最大CPU份额;base_part是预设的基本的CPU份额单位;max_total_weight为预设的最大的总权重阈值;
将part与max_total_weight*base_part的比值作为cgroup时间比例的权重比,通过操作***提供的通知机制传入当前进程的Cgroup中实现调整占用份额。
6.一种基于旁路式动态限制Linux进程CPU资源占用的***,其特征在于,所述***包括:
监控模块,被配置用于监控进程占用CPU情况;
判断模块,被配置用于当存在进程占用CPU超过预设阈值时,初始所述进程的cgroups,计算该进程的综合权重并根据该权重得出进程运行的最大份额;
资源调配模块,被配置用于绕过用户空间直接修改内核资源模块,通知CPU cgroups控制器限制所述进程的CPU占用。
7.根据权利要求6所述的基于旁路式动态限制Linux进程CPU资源占用的***,其特征在于,所述***还包括:
调整模块,被配置用于实时操作cgroups,根据***的负载变化来动态调整进程CPU占用份额。
8.一种电子设备,其特征在于,该电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有能够被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行时,使所述至少一个处理器执行如权利要求1至5中的任一项所述的基于旁路式动态限制Linux进程CPU资源占用的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令当由至少一个处理器执行时使所述至少一个处理器执行如权利要求1至5中的任一项所述的基于旁路式动态限制Linux进程CPU资源占用的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311796178.7A CN117687790A (zh) | 2023-12-25 | 2023-12-25 | 基于旁路式动态限制Linux进程CPU资源占用的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311796178.7A CN117687790A (zh) | 2023-12-25 | 2023-12-25 | 基于旁路式动态限制Linux进程CPU资源占用的方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117687790A true CN117687790A (zh) | 2024-03-12 |
Family
ID=90135219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311796178.7A Pending CN117687790A (zh) | 2023-12-25 | 2023-12-25 | 基于旁路式动态限制Linux进程CPU资源占用的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117687790A (zh) |
-
2023
- 2023-12-25 CN CN202311796178.7A patent/CN117687790A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20200047494A (ko) | 자동 애플리케이션 업데이트 | |
US8417239B1 (en) | Wireless device coverage mapping | |
US20180205593A1 (en) | Resource Management for Services | |
US9075789B2 (en) | Methods and apparatus for interleaving priorities of a plurality of virtual processors | |
CN109743381B (zh) | 客户端与服务端长连接交互方法及装置 | |
CN112256231B (zh) | 音量控制方法、装置、终端和存储介质 | |
US20150012973A1 (en) | Methods and apparatus for sharing a service between multiple virtual machines | |
CN112379982B (zh) | 任务处理方法、装置、电子设备及计算机可读存储介质 | |
CN116737080A (zh) | 分布式存储***数据块管理方法、***、设备及储存介质 | |
CN115904761A (zh) | 片上***、车辆及视频处理单元虚拟化方法 | |
CN115225577B (zh) | 数据处理控制方法、装置、电子设备及可读存储介质 | |
US10275169B2 (en) | Shared memory in memory isolated partitions | |
CN104601725B (zh) | 业务请求的响应方法和装置 | |
US20150012654A1 (en) | Methods and apparatus for sharing a physical device between multiple physical machines | |
CN117687790A (zh) | 基于旁路式动态限制Linux进程CPU资源占用的方法及*** | |
US20150012918A1 (en) | Methods and apparatus for sharing a physical device between multiple virtual machines | |
CN111193717A (zh) | Ftp黑白名单控制方法、装置及电子设备 | |
CN111182062B (zh) | 服务多活调用方法、***及电子设备 | |
CN113660699A (zh) | 一种智能集群联网方法、装置及电子设备 | |
CN114138427A (zh) | Slo保障方法、装置、节点及存储介质 | |
CN114006871A (zh) | 流量控制方法、装置、容器和存储介质 | |
CN113064620A (zh) | 一种处理***数据的方法和装置 | |
CN112148497A (zh) | 一种磁盘资源管理方法、装置及电子设备 | |
US20150010015A1 (en) | Methods and apparatus for sharing a service between multiple physical machines | |
CN111209058B (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 |