CN112306681A - 一种资源控制方法、装置及电子设备 - Google Patents
一种资源控制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112306681A CN112306681A CN202011165008.5A CN202011165008A CN112306681A CN 112306681 A CN112306681 A CN 112306681A CN 202011165008 A CN202011165008 A CN 202011165008A CN 112306681 A CN112306681 A CN 112306681A
- Authority
- CN
- China
- Prior art keywords
- resource
- target
- target process
- running
- resources
- 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
Images
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/5011—Allocation 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/5016—Allocation 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种资源控制方法、装置及电子设备,将需要进行资源控制的目标程序数据生成目标进程,在目标进程运行时,若目标进程使用的实际资源超过为目标进程分配的资源时,控制所述目标进程停止运行,可以保证目标进程仅使用为其分配的资源,不会占用额外的资源,从而不会影响其他进程的运行,保证其他进程对应的应用程序的正常运行。进一步,还能够确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端,用户可以依据调整信息对资源和/或目标进程进行调整,使得调整后的资源和/或目标进程更符合目标进程的运行环境。
Description
技术领域
本发明涉及资源管理领域及计算机优化领域,更具体的说,涉及一种资源控制方法、装置及电子设备。
背景技术
应用程序,指为完成某项或多项特定工作的计算机程序,应用程序需要运行在容器或服务器中,才可以为用户提供服务,应用程序运行在容器或服务器中时,可以称为进程。
当多个应用程序对应的多个进程均运行在同一容器或服务器中时,多个进程共用资源,如使用同一个中央处理器CPU资源,同一个内存资源。当其中一个进程占用的资源较多时,会使得其他进程可用的资源较少,无法满足其他进程对应的应用程序的资源需求,从而导致部分应用程序运行故障。
发明内容
有鉴于此,本发明提供一种资源控制方法、装置及电子设备,以解决现有技术中当其中一个进程占用的资源较多时,会使得其他进程可用的资源较少,无法满足其他进程对应的应用程序的资源需求,从而导致部分应用程序运行故障的问题。
为实现上述目的,本发明提供如下技术方案:
一种资源控制方法,包括:
获取目标进程对应的资源分配信息;所述目标进程依据目标程序数据生成;所述资源分配信息包括目标资源以及所述目标资源的预设资源量;
在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;在使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行;所述运行资源包括所述目标资源;
在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端;所述调整信息包括资源调整信息和/或目标进程调整信息。
可选地,所述目标资源的预设资源量包括所述目标资源的可用资源数量和可用时间;
若出现所述目标进程占用的运行资源的资源占用量大于所述资源分配信息中所述目标资源的预设资源量的情况,控制所述目标进程停止运行,包括:
在所述目标进程占用的运行资源的资源占用数量大于所述可用资源数量,或所述目标进程的运行时间大于所述可用时间的情况下,控制所述目标进程停止运行;所述资源占用量包括所述资源占用数量和运行时间。
可选地,获取目标进程对应的资源分配信息,包括:
获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程;
获取预先设定的所述目标进程对应的资源分配信息。
可选地,获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程,包括:
获取预设程序数据中需要进行资源控制的目标程序数据,并将所述目标程序数据写入预设主函数中,得到目标进程;
将所述目标进程加载到预设位置中。
可选地,确定是否需要运行所述目标进程的过程包括:
获取进程运行优先级顺序;所述进程运行优先级顺序包括所述目标进程的标识、且表征不同进程的运行顺序;
依据所述进程运行优先级顺序,判断位于所述目标进程之前且紧邻所述目标进程的上一进程是否运行结束;
若结束,则确定出需要运行所述目标进程。
可选地,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,包括:
在所述运行资源中的内存的资源占用量大于所述目标资源中的内存的预设资源量的情况下,确定包括调整所述目标进程所在设备的内存资源和/或调整所述目标进程的运行逻辑的调整信息;所述资源调整信息为包括调整所述目标进程所在设备的内存资源的信息;所述目标进程调整信息为包括调整所述目标进程的运行逻辑的信息。
一种资源控制装置,包括:
信息获取模块,用于获取目标进程对应的资源分配信息;所述目标进程依据目标程序数据生成;所述资源分配信息包括目标资源以及所述目标资源的预设资源量;
进程运行模块,用于在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;在使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行;所述运行资源包括所述目标资源;
调整信息确定模块,用于在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端;所述调整信息包括资源调整信息和/或目标进程调整信息。
可选地,所述目标资源的预设资源量包括所述目标资源的可用资源数量和可用时间;
所述进程运行模块用于若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行时,具体用于:
在所述目标进程占用的运行资源的资源占用数量大于所述可用资源数量,或所述目标进程的运行时间大于所述可用时间的情况下,控制所述目标进程停止运行;所述资源占用量包括所述资源占用数量和运行时间。
可选地,所述信息获取模块用于:
获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程;
获取预先设定的所述目标进程对应的资源分配信息。
一种电子设备,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
获取目标进程对应的资源分配信息;所述目标进程依据目标程序数据生成;所述资源分配信息包括目标资源以及所述目标资源的预设资源量;
在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;在使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行;所述运行资源包括所述目标资源;
在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端;所述调整信息包括资源调整信息和/或目标进程调整信息。
经由上述的技术方案可知,本发明提供了一种资源控制方法、装置及电子设备,将需要进行资源控制的目标程序数据生成目标进程,在目标进程运行时,若目标进程使用的实际资源超过为目标进程分配的资源时,控制所述目标进程停止运行,可以保证目标进程仅使用为其分配的资源,不会占用额外的资源,从而不会影响其他进程的运行,保证其他进程对应的应用程序的正常运行。进一步,还能够确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端,用户可以依据调整信息对资源和/或目标进程进行调整,使得调整后的资源和/或目标进程更符合目标进程的运行环境。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种资源控制方法的方法流程图;
图2为本发明实施例提供的另一种资源控制方法的方法流程图;
图3为本发明实施例提供的一种资源控制装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当多个应用程序对应的多个进程均运行在同一容器或服务器中时,多个进程共用资源,如使用同一个中央处理器CPU资源,同一个内存资源。当其中一个进程占用的资源较多时,会使得其他进程可用的资源较少,无法满足其他进程对应的应用程序的资源需求,从而导致部分应用程序运行故障。
为了解决上述技术问题,本发明实施例中,会将需要进行资源管控的目标程序数据构建成一个新的目标进程,并将目标进程加载到linux内核中,为该目标进程设定相应的资源使用量,目标资源的预设资源量,使用Linux内核中的cgroup(源自控制组群,controlgroups)功能对目标进程进行资源管控,若出现目标进程使用的资源超过该目标资源的预设资源量时,则控制该目标进程停止运行,从而保证目标进程仅使用为其分配的资源,不会占用额外的资源,从而不会影响其他进程的运行,保证其他进程对应的应用程序的正常运行。进一步,还能够确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端,用户可以依据调整信息对资源和/或目标进程进行调整,使得调整后的资源和/或目标进程更符合目标进程的运行环境。
具体的,参照图1,本发明实施例提供了一种资源控制方法,可以包括:
S11、获取目标进程对应的资源分配信息。
在实际应用中,目标进程需要预先生成、且所述目标进程依据目标程序数据生成。具体的,参照图2,步骤S11可以包括:
S21、获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程。
本实施例中,需要预先确定需要进行资源管控的目标程序数据,在实际应用中,目标程序数据是从预设程序数据中筛选出来的,预设程序数据是一个应用程序数据,包括底层运行环境数据,目标程序数据是用户编写的程序,如可以是数据的计算方法,如求和、取平均值等,此外,还可以是数据抓取、数据保存等方法。目标程序数据中包括运行该目标程序数据所需的资源,如需要10G的内存资源。
一般来说,一个预设程序数据会包括一个底层运行环境数据以及至少一个目标程序数据,也就是说,多个目标程序数据可以使用同一底层运行环境数据。
在获取到目标程序数据之后,需要将该目标程序数据写入预设主函数中,预设主函数是一个新的主函数,该主函数对应的输入参数应设置为标准输入(键盘),对应的返回值应设置成标准输出(显示屏)中。其中,标准输入指的操作系统将外部设备的输入写入内存;标准输出指操作系统把内存中的数据输出到外部设备。
将该目标程序数据写入预设主函数中,即可得到目标进程。仅有该目标进程并不能使得目标进程自己运行,具体来说,因为此进程独立于应用进程之外,所以应用程序初始化的资源此进程无法访问,需要重新初始化。此时需要将目标进程加载到linux内核中,才能够保证目标进程的正常运行。本实施例中的linux内核即为预设位置。
S22、获取预先设定的所述目标进程对应的资源分配信息。
在实际应用中,只要是创建了与目标程序数据对应的目标进程,就可以为该目标进程分配资源,即设定该目标进程对应的资源分配信息。也就是说,设定该目标进程对应的资源分配信息与将目标进程加载到预设位置这两个步骤,并没有绝对的先后关系,可以同时执行,也可以一个先执行,一个后执行。
本实施例中的所述目标进程对应的资源分配信息,是人工设定的,即人工根据经验确定目标进程对应的资源分配信息。其中,包括目标资源以及所述目标资源的预设资源量。目标资源可以是CPU、内存等资源,目标资源的预设资源量可以是目标资源的可用资源数量和可用时间。以目标资源为内存为例,内存的可用资源数量可以是5G,可用时间是5分钟,也就是说,该目标进程可以使用5分钟的5G内存资源。
S12、在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行。
本实施例中,可以在确定出目标进程对应的资源分配信息,就控制该目标进程按照该资源分配信息运行。但是在实际应用中,一般需要运行的进程的数量较多,很难保证只要有了对应的资源分配信息,就控制进程运行。一般情况下,会为多个进程设置运行优先级顺序,即进程运行优先级顺序,进程运行优先级顺序中包括按照运行先后顺序排列的多个进程的标识信息,也就是说,所述进程运行优先级顺序表征不同进程的运行顺序。目标进程的标识也可以是上述的进程运行优先级顺序中的一个,即目标进程也需要按照进程顺序执行。
得到进程运行优先级顺序之后,按照进程运行优先级顺序依次执行进程,在判断是否需要运行所述目标进程时,需要判断位于所述目标进程之前且紧邻所述目标进程的上一进程是否运行结束,即判断位于目标进程之前的上一个进程是否执行完成,若完成,则确定出需要运行该目标进程。在实际应用该目标进程时,就按照上述的标准输入和标准输出执行即可,即可得到执行结果。
需要说明的是,多个进程可以采用轮询的方式进行进程执行,假设为每一进程设定的可用时间均为5分钟,则对于一进程,在执行5分钟后,该进程挂起,但是该进程并未执行完毕,则等待下一次执行该进程时,再次执行该进程中未执行的部分。
综上所述,确定是否需要运行所述目标进程的过程包括:获取进程运行优先级顺序;所述进程运行优先级顺序包括所述目标进程的标识、且表征不同进程的运行顺序;依据所述进程运行优先级顺序,判断位于所述目标进程之前且紧邻所述目标进程的上一进程是否运行结束;若结束,则确定出需要运行所述目标进程。
需要说明的是,除了本实施例中的实现确定是否需要运行所述目标进程的方式之外,其他可以实现确定是否需要运行所述目标进程的方式均在本发明的保护范围内。
在确定出目标进程可以运行时,即可以使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行。
更具体的,在所述目标进程占用的运行资源的资源占用数量大于所述可用资源数量,或所述目标进程的运行时间大于所述可用时间的情况下,控制所述目标进程停止运行;所述资源占用量包括所述资源占用数量和运行时间。
在实际应用中,目标进程加载到linux内核中,linux内核中设置有CPU、内存等资源,从而这些资源可以运行该进程,在运行该进程的过程中,会使用Linux内核中的cgroup功能对目标进程进行资源管控,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行。
具体的,Linux内核中的cgroup功能本质上是给任务挂上钩子,当任务运行的过程中涉及某种资源时,就会触发钩子上所附带的子系统进行检测,然后根据资源类别的不同使用对应的技术进行资源限制和优先级分配。子系统可以划分成多类:
(1)cpu子系统。主要限制进程的cpu使用率。
(2)cpuacct子系统。可以统计cgroup中的进程的cpu使用报告。
(3)cpuset子系统。可以为cgroup中的进程分配单独的cpu节点或者内存节点。
(4)memory子系统。可以限制进程的memory使用量。
(5)blkio子系统。可以限制进程的块设备io。
(6)devices子系统。可以控制进程能够访问某些设备。
(7)net_cls子系统。可以标记cgroup中进程的网络数据包,然后可以使用tc模块(traffic control)对数据包进行控制。
(8)freezer子系统。可以挂起或者恢复cgroup中的进程。
(9)ns子系统。可以使不同cgroup下面的进程使用不同的namespace。
在本实施例中,需要是使用cpu子系统来限制目标进程运行时使用的CPU资源,以及使用memory子系统来限制目标进程运行时使用的内存资源。即本实施例主要是限制目标进程使用的CPU资源和内存资源,此外,若需要限定目标进程的其他资源,则仅需要限定其他资源的使用量和使用时间,超出该使用量或使用时间,即认为资源运行超量,则此时禁止目标进程运行。
cgroup功能,即具有cgroup功能的资源管理程序,会实时监测目标进程的实时运行过程中占用的运行资源的资源占用量,如实时监测CPU占有量或使用率、内存占有量或使用率,若进程设置了在运行过程中需要使用5个CPU节点,但是仅给该目标进程分配了3个CPU节点,则监测出目标进程占用第4个CPU节点时,就控制目标进程停止运行,对于内存资源做同样处理。
另外,同时会监测目标进程的运行时间,若运行时间大于预先设定的该目标程序可运行的可用时间,也会控制目标进程停止运行。
需要说明的是,本实施例中的运行资源包括所述目标资源,若仅占用目标资源,则资源未超过分配量,若还占用其他资源,则资源超过分配量,控制目标进程停止运行。
S13、在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端。
本次控制目标进程停止运行后,为了保证下次该目标进程能够正常运行,可以给出一个调整建议,即调整信息。
需要说明的是,在生成调整信息时,因为内存的资源容易更改,所以一般都是调整内存,具体的,在所述运行资源中的内存的资源占用量大于所述目标资源中的内存的预设资源量的情况下,确定包括调整所述目标进程所在设备的内存资源和/或调整所述目标进程的运行逻辑的调整信息;所述资源调整信息为包括调整所述目标进程所在设备的内存资源的信息;所述目标进程调整信息为包括调整所述目标进程的运行逻辑的信息。
上述的资源调整信息和目标进程调整信息可以是在内存不足的情况下生成的,资源调整信息的内容可以是扩大设备内存,如增加内存条,目标进程调整信息可以是调整目标进程的运行逻辑,减少内存占用量。
更具体地,资源调整信息可以是如何调整该目标进程所在的设备的资源的信息,如调整该设备的内存资源,具体操作可以是增加内存条等。或者是调整目标进程的运行逻辑的信息的目标进程调整信息,举例来说,原有的是运行逻辑是同时使用10G资源计算得到5个公式的结果,现在可以更改成顺序使用2G资源计算得到1个公式的结果,共执行5次,具体是否调整以及如何调整是由用户来决定。
本实施例中,将需要进行资源控制的目标程序数据生成目标进程,在目标进程运行时,若目标进程使用的实际资源超过为目标进程分配的资源时,控制所述目标进程停止运行,可以保证目标进程仅使用为其分配的资源,不会占用额外的资源,从而不会影响其他进程的运行,保证其他进程对应的应用程序的正常运行。进一步,还能够确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端,用户可以依据调整信息对资源和/或目标进程进行调整,使得调整后的资源和/或目标进程更符合目标进程的运行环境。
另外,本发明中的资源控制方法直接利用操作系统内核的cgroup功能实现,比利用容器实现更靠近操作系统内核,减少了上层数据交互和网络通信开销。
此外,本实施例中的资源控制方法可以对任何需要管控的目标程序数据进行管控,管控方式灵活且适用性强,可以根据业务的需要来对具体的代码处理函数进行资源管控。
需要说明的是,多个进程还可以采用抢占的方式进行进程执行,此时就不涉及进程运行优先级顺序,抢占到资源的进程运行即可。
可选地,在上述资源控制方法的实施例的基础上,本发明的另一实施例提供了一种资源控制装置,参照图3,可以包括:
信息获取模块11,用于获取目标进程对应的资源分配信息;所述目标进程依据目标程序数据生成;所述资源分配信息包括目标资源以及所述目标资源的预设资源量;
进程运行模块12,用于在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;在使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行;所述运行资源包括所述目标资源;
调整信息确定模块13,用于在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端;所述调整信息包括资源调整信息和/或目标进程调整信息。
进一步,所述目标资源的预设资源量包括所述目标资源的可用资源数量和可用时间;
所述进程运行模块用于若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行时,具体用于:
在所述目标进程占用的运行资源的资源占用数量大于所述可用资源数量,或所述目标进程的运行时间大于所述可用时间的情况下,控制所述目标进程停止运行;所述资源占用量包括所述资源占用数量和运行时间。
进一步,所述信息获取模块用于:
获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程;
获取预先设定的所述目标进程对应的资源分配信息。
进一步,信息获取模块用于获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程时,具体用于:
获取预设程序数据中需要进行资源控制的目标程序数据,并将所述目标程序数据写入预设主函数中,得到目标进程;将所述目标进程加载到预设位置中。
进一步,还包括运行过程确定模块,运行过程确定模块用于确定是否需要运行所述目标进程的过程时,具体用于:
获取进程运行优先级顺序;所述进程运行优先级顺序包括所述目标进程的标识、且表征不同进程的运行顺序;
依据所述进程运行优先级顺序,判断位于所述目标进程之前且紧邻所述目标进程的上一进程是否运行结束;
若结束,则确定出需要运行所述目标进程。
进一步,调整信息确定模块13用于确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息时,具体用于:
在所述运行资源中的内存的资源占用量大于所述目标资源中的内存的预设资源量的情况下,确定包括调整所述目标进程所在设备的内存资源和/或调整所述目标进程的运行逻辑的调整信息;所述资源调整信息为包括调整所述目标进程所在设备的内存资源的信息;所述目标进程调整信息为包括调整所述目标进程的运行逻辑的信息。
本实施例中,将需要进行资源控制的目标程序数据生成目标进程,在目标进程运行时,若目标进程使用的实际资源超过为目标进程分配的资源时,控制所述目标进程停止运行,可以保证目标进程仅使用为其分配的资源,不会占用额外的资源,从而不会影响其他进程的运行,保证其他进程对应的应用程序的正常运行。进一步,还能够确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端,用户可以依据调整信息对资源和/或目标进程进行调整,使得调整后的资源和/或目标进程更符合目标进程的运行环境。
另外,本发明中的资源控制方法直接利用操作系统内核的cgroup功能实现,比利用容器实现更靠近操作系统内核,减少了上层数据交互和网络通信开销。
此外,本实施例中的资源控制方法可以对任何需要管控的目标程序数据进行管控,管控方式灵活且适用性强,可以根据业务的需要来对具体的代码处理函数进行资源管控。
需要说明的是,本实施例中的各个模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
可选地,在上述资源控制方法的实施例的基础上,本发明的另一实施例提供了一种电子设备,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
获取目标进程对应的资源分配信息;所述目标进程依据目标程序数据生成;所述资源分配信息包括目标资源以及所述目标资源的预设资源量;
在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;在使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行;所述运行资源包括所述目标资源;
在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端;所述调整信息包括资源调整信息和/或目标进程调整信息。
本实施例中,将需要进行资源控制的目标程序数据生成目标进程,在目标进程运行时,若目标进程使用的实际资源超过为目标进程分配的资源时,控制所述目标进程停止运行,可以保证目标进程仅使用为其分配的资源,不会占用额外的资源,从而不会影响其他进程的运行,保证其他进程对应的应用程序的正常运行。进一步,还能够确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端,用户可以依据调整信息对资源和/或目标进程进行调整,使得调整后的资源和/或目标进程更符合目标进程的运行环境。
另外,本发明中的资源控制方法直接利用操作系统内核的cgroup功能实现,比利用容器实现更靠近操作系统内核,减少了上层数据交互和网络通信开销。
此外,本实施例中的资源控制方法可以对任何需要管控的目标程序数据进行管控,管控方式灵活且适用性强,可以根据业务的需要来对具体的代码处理函数进行资源管控。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种资源控制方法,其特征在于,包括:
获取目标进程对应的资源分配信息;所述目标进程依据目标程序数据生成;所述资源分配信息包括目标资源以及所述目标资源的预设资源量;
在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;在使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行;所述运行资源包括所述目标资源;
在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端;所述调整信息包括资源调整信息和/或目标进程调整信息。
2.根据权利要求1所述的资源控制方法,其特征在于,所述目标资源的预设资源量包括所述目标资源的可用资源数量和可用时间;
若出现所述目标进程占用的运行资源的资源占用量大于所述资源分配信息中所述目标资源的预设资源量的情况,控制所述目标进程停止运行,包括:
在所述目标进程占用的运行资源的资源占用数量大于所述可用资源数量,或所述目标进程的运行时间大于所述可用时间的情况下,控制所述目标进程停止运行;所述资源占用量包括所述资源占用数量和运行时间。
3.根据权利要求1所述的资源控制方法,其特征在于,获取目标进程对应的资源分配信息,包括:
获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程;
获取预先设定的所述目标进程对应的资源分配信息。
4.根据权利要求3所述的资源控制方法,其特征在于,获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程,包括:
获取预设程序数据中需要进行资源控制的目标程序数据,并将所述目标程序数据写入预设主函数中,得到目标进程;
将所述目标进程加载到预设位置中。
5.根据权利要求1所述的资源控制方法,其特征在于,确定是否需要运行所述目标进程的过程包括:
获取进程运行优先级顺序;所述进程运行优先级顺序包括所述目标进程的标识、且表征不同进程的运行顺序;
依据所述进程运行优先级顺序,判断位于所述目标进程之前且紧邻所述目标进程的上一进程是否运行结束;
若结束,则确定出需要运行所述目标进程。
6.根据权利要求1所述的资源控制方法,其特征在于,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,包括:
在所述运行资源中的内存的资源占用量大于所述目标资源中的内存的预设资源量的情况下,确定包括调整所述目标进程所在设备的内存资源和/或调整所述目标进程的运行逻辑的调整信息;所述资源调整信息为包括调整所述目标进程所在设备的内存资源的信息;所述目标进程调整信息为包括调整所述目标进程的运行逻辑的信息。
7.一种资源控制装置,其特征在于,包括:
信息获取模块,用于获取目标进程对应的资源分配信息;所述目标进程依据目标程序数据生成;所述资源分配信息包括目标资源以及所述目标资源的预设资源量;
进程运行模块,用于在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;在使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行;所述运行资源包括所述目标资源;
调整信息确定模块,用于在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端;所述调整信息包括资源调整信息和/或目标进程调整信息。
8.根据权利要求7所述的资源控制装置,其特征在于,所述目标资源的预设资源量包括所述目标资源的可用资源数量和可用时间;
所述进程运行模块用于若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行时,具体用于:
在所述目标进程占用的运行资源的资源占用数量大于所述可用资源数量,或所述目标进程的运行时间大于所述可用时间的情况下,控制所述目标进程停止运行;所述资源占用量包括所述资源占用数量和运行时间。
9.根据权利要求7所述的资源控制装置,其特征在于,所述信息获取模块用于:
获取预先创建的与目标程序数据对应、且加载到预设位置中的目标进程;
获取预先设定的所述目标进程对应的资源分配信息。
10.一种电子设备,其特征在于,包括:存储器和处理器;
其中,所述存储器用于存储程序;
处理器调用程序并用于:
获取目标进程对应的资源分配信息;所述目标进程依据目标程序数据生成;所述资源分配信息包括目标资源以及所述目标资源的预设资源量;
在确定出需要运行所述目标进程的情况下,使用所述目标资源运行所述目标进程;在使用所述目标资源运行所述目标进程的过程中,若出现所述目标进程占用的运行资源的资源占用量大于所述目标资源的预设资源量的情况,控制所述目标进程停止运行;所述运行资源包括所述目标资源;
在控制所述目标进程停止运行之后,确定出与所述目标进程占用的运行资源的资源占用量对应的调整信息,并推送所述调整信息至所述目标进程对应的用户终端;所述调整信息包括资源调整信息和/或目标进程调整信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165008.5A CN112306681A (zh) | 2020-10-27 | 2020-10-27 | 一种资源控制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011165008.5A CN112306681A (zh) | 2020-10-27 | 2020-10-27 | 一种资源控制方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306681A true CN112306681A (zh) | 2021-02-02 |
Family
ID=74331111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011165008.5A Pending CN112306681A (zh) | 2020-10-27 | 2020-10-27 | 一种资源控制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112306681A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220552A (zh) * | 2021-05-12 | 2021-08-06 | 湖北亿咖通科技有限公司 | 车载信息娱乐系统中限制应用运行数量的方法和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530193A (zh) * | 2013-11-01 | 2014-01-22 | 北京网秦天下科技有限公司 | 用于调节应用进程的方法和设备 |
CN103645955A (zh) * | 2013-12-16 | 2014-03-19 | 百度在线网络技术(北京)有限公司 | 应用程序的运行管理方法和装置 |
CN106792165A (zh) * | 2016-12-02 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种资源动态调整方法及装置 |
US20190188030A1 (en) * | 2016-08-25 | 2019-06-20 | Huawei Technologies Co., Ltd. | Terminal background application management method and apparatus |
CN110187838A (zh) * | 2019-05-30 | 2019-08-30 | 北京百度网讯科技有限公司 | 数据io信息处理方法、分析方法、装置和相关设备 |
-
2020
- 2020-10-27 CN CN202011165008.5A patent/CN112306681A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530193A (zh) * | 2013-11-01 | 2014-01-22 | 北京网秦天下科技有限公司 | 用于调节应用进程的方法和设备 |
CN103645955A (zh) * | 2013-12-16 | 2014-03-19 | 百度在线网络技术(北京)有限公司 | 应用程序的运行管理方法和装置 |
US20190188030A1 (en) * | 2016-08-25 | 2019-06-20 | Huawei Technologies Co., Ltd. | Terminal background application management method and apparatus |
CN106792165A (zh) * | 2016-12-02 | 2017-05-31 | 武汉斗鱼网络科技有限公司 | 一种资源动态调整方法及装置 |
CN110187838A (zh) * | 2019-05-30 | 2019-08-30 | 北京百度网讯科技有限公司 | 数据io信息处理方法、分析方法、装置和相关设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113220552A (zh) * | 2021-05-12 | 2021-08-06 | 湖北亿咖通科技有限公司 | 车载信息娱乐系统中限制应用运行数量的方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199194B (zh) | 基于容器集群的资源调度方法、装置、设备和存储介质 | |
US7290259B2 (en) | Virtual computer system with dynamic resource reallocation | |
US7640231B2 (en) | Approach based on self-evolving models for performance guarantees in a shared storage system | |
CN106452818B (zh) | 一种资源调度的方法和系统 | |
US20100076925A1 (en) | System for managing data collection processes | |
US8516462B2 (en) | Method and apparatus for managing a stack | |
US8756307B1 (en) | Translating service level objectives to system metrics | |
US8606905B1 (en) | Automated determination of system scalability and scalability constraint factors | |
CN110308985B (zh) | 云专属服务器资源管理方法、装置、设备及存储介质 | |
CN109960575B (zh) | 一种计算能力共享方法、系统及相关设备 | |
CN111104208A (zh) | 进程调度管理方法、装置、计算机设备及存储介质 | |
US20220195434A1 (en) | Oversubscription scheduling | |
US7752623B1 (en) | System and method for allocating resources by examining a system characteristic | |
CN111064746A (zh) | 一种资源分配方法、装置、设备及存储介质 | |
CN112100034A (zh) | 一种业务监控方法和装置 | |
CN113886069A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN110838987B (zh) | 队列限流方法、存储介质 | |
CN110336888B (zh) | 一种服务器分配方法、装置、系统及介质 | |
CN112306681A (zh) | 一种资源控制方法、装置及电子设备 | |
CN114546587A (zh) | 一种在线图像识别服务的扩缩容方法及相关装置 | |
CN114422439A (zh) | 接口限流方法、装置、计算机设备和存储介质 | |
CN114189559A (zh) | 基于Axios的接口重复请求处理方法及系统 | |
US7698705B1 (en) | Method and system for managing CPU time consumption | |
CN113905091A (zh) | 用于对访问请求进行处理的方法及装置 | |
KR20200128589A (ko) | 정보 처리 장치, 튜닝 방법 및 기록 매체에 저장된 튜닝 프로그램 |
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 |