一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

集群资源控制方法和装置、集群、计算机可读存储介质与流程

2021-12-17 18:09:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别是涉及一种集群资源控制方法和装置、集群、计算机可读存储介质。


背景技术:

2.集群主要由五类计算设备和三类网络组成。其中,五类计算设备主要是指管理节点及登录节点、计算节点、交换设备、i/o设备和存储设备。登录节点相当于用户访问集群系统的网关,计算节点是整个集群的计算核心。用户通常在登录节点上进行简单编译并提交计算程序至计算节点,由计算节点运行计算程序。
3.用户在登录集群之后,部分不熟悉集群操作的用户误将计算程序运行在登录节点上,或部分不良用户直接控制计算程序运行在登录节点上,以减少计算程序运行在计算节点所产生的费用。一般计算程序所占用的资源较大,若此时登录节点上运行了计算程序,就会导致登录节点的负载过高,影响集群系统正常运行。
4.传统方法中,通常是对所有用户共同消耗的资源进行限制,很难实现对每个用户的可用资源进行限制。且即使通过配置文件对每个用户记载资源限制,但是由于比较难准确地监控到用户的登录行为,使得在进行资源限制时经常遗漏部分用户。


技术实现要素:

5.本技术实施例提供了一种集群资源控制方法和装置、集群、计算机可读存储介质,能够实现对每个用户在登录节点进行资源限制时不会遗漏用户,保证集群正常运行。
6.在其中一个实施例中,提供了一种集群资源控制方法,所述集群包括登录节点,所述方法包括:
7.监听所述登录节点的预设目录下是否存在创建预设文件的行为;其中,在预设目录下创建预设文件为每个用户在登陆所述集群的过程中的强制性行为;
8.若存在,则根据所述用户的标识为所述用户配置资源控制策略,并根据所述资源控制策略对所述用户在所述登录节点的可用资源进行管理;其中,所述资源控制策略包括所述用户的可用资源配额。
9.本技术实施例中,由于在预设目录下创建预设文件为每个用户登录集群的过程中,在登录节点进行环境加载时所必须执行的强制性行为,所以通过监听登录节点的预设目录下是否存在文件创建行为,来监听用户的登录行为,就不会遗漏任何用户的登录行为。然后,若监听到登录节点的预设目录下存在创建预设文件的行为,则根据所述用户的标识为所述用户配置资源控制策略,并根据所述资源控制策略对所述用户在所述登录节点的可用资源进行管理。因此,能够实现在对每个用户在登录节点进行资源限制时不会遗漏用户,保证集群正常运行。
10.在其中一个实施例中,所述预设目录包括/tmp目录所包含的自定义子目录。
11.本技术实施例中,由于在linux系统中普通用户登录集群时,均需要在/etc/
profile.d目录下加载环境变量,并基于所加载的环境变量在预设目录下创建临时文件以实现环境加载,因此,通过监听登录节点的/tmp目录所包含的自定义子目录下是否存在创建预设文件的行为,就可以准确地监听到每个用户登录集群的登录行为,不会遗漏任何一个用户的登录行为。进而,就可以针对每个用户进行资源管理,避免了出现单一用户在登录节点恶意运行复杂的计算程序,或因为不熟悉集群操作误将计算程序运行在登录节点,造成登录节点长时间超负荷运行、导致集群死机,以至于影响集群的正常运行的情况。
12.在其中一个实施例中,所述预设文件为自定义文件;所述监听登录节点的预设目录下是否存在创建预设文件的行为,包括:
13.通过inotify工具监听所述/tmp目录所包含的自定义子目录下是否存在创建所述自定义文件的行为。
14.本技术实施例中,由于inotify工具可以监控文件发生的一切变化,因此,在登录节点,就可以通过inotify工具准确地监听登录节点的预设目录下是否存在创建预设文件的行为。进而,若监听到登录节点的预设目录下存在创建预设文件的行为,则根据所述用户的标识为所述用户配置资源控制策略,并根据所述资源控制策略对所述用户在所述登录节点的可用资源进行管理。因此,能够实现在对每个用户在登录节点进行资源限制时不遗漏任何一个用户,保证集群正常运行。
15.在其中一个实施例中,所述用户的标识包括所述用户的id以及所述用户登录所述登录节点的登录进程id;在所述根据所述用户的标识为所述用户配置资源控制策略之前,还包括:
16.从所述自定义文件中获取所述用户的id以及所述用户登录所述登录节点的登录进程id。
17.本技术实施例中,因为在用户登录了集群的登录节点的过程中,由于登录节点是基于该用户的id以及此时该用户在登录节点进行登录时所产生的登录进程id,在预设目录下进行创建自定义文件,所以集群从所述自定义文件中就可以获取到所述用户的id以及所述用户登录所述登录节点的登录进程id。便于后续跟进用户的id以及所述用户登录所述登录节点的登录进程id,为该用户配置资源控制策略,并根据所述资源控制策略对所述用户在所述登录节点的可用资源进行管理。
18.在其中一个实施例中,所述根据所述用户的标识为所述用户配置资源控制策略,包括:
19.判断所述登录节点上是否存在与所述用户的标识对应的资源控制组,所述资源控制组包括资源控制策略;
20.若存在,则将所述资源控制组中的资源控制策略配置给所述用户的标识。
21.本技术实施例中,若监听登录节点的预设目录下存在创建预设文件的行为,则获取用户的用户id及用户在登录节点进行登录时所产生的登录进程的id。判断所述登录节点上是否存在与所述用户的标识对应的资源控制组,若存在,则将所述资源控制组中的资源控制策略配置给所述用户的标识,即将用户id加入资源控制组。后续,在获取了该用户id对应的登录进程的id下所有子进程的id的过程中,就可以基于该资源控制组中预先设置的资源控制策略,对该用户id对应的所有子进程,在登录节点的可用资源进行管理。
22.因此,能够实现对每个用户对应的所有子进程在登录节点进行资源限制,保证集
群正常运行。
23.在其中一个实施例中,所述根据所述用户的标识为所述用户配置资源控制策略,还包括:
24.若不存在,则创建新的资源控制组,并建立所述用户的标识与所述新的资源控制组之间的对应关系;
25.将所述新的资源控制组中的资源控制策略配置给所述用户的标识。
26.本技术实施例中,若监听登录节点的预设目录下存在创建预设文件的行为,则获取用户的用户id及用户在登录节点进行登录时所产生的登录进程的id。判断所述登录节点上是否存在与所述用户的标识对应的资源控制组,若存在,则将所述资源控制组中的资源控制策略配置给所述用户的标识,即将用户id加入资源控制组。若不存在,则创建新的资源控制组,并建立所述用户的标识与所述新的资源控制组之间的对应关系,将所述新的资源控制组中的资源控制策略配置给所述用户的标识。实现了针对登录节点上存在资源控制组的用户id,或登录节点上不存在资源控制组的用户id,均可以将用户id加入资源控制组。后续,在获取了该用户id对应的登录进程的id下所有子进程的id的过程中,就可以基于该资源控制组中预先设置的资源控制策略,对该用户id对应的所有子进程,在登录节点的可用资源进行管理。
27.因此,能够实现对每个用户对应的所有子进程在登录节点进行资源限制,保证集群正常运行。
28.在其中一个实施例中,所述用户包括bash类型用户或csh类型用户。
29.本技术实施例中,所提供的集群资源控制方法适用于bash类型用户或csh类型用户,本技术对此不做限定。因此,可以针对各种各样的用户进行集群资源控制,提高了该集群资源控制方法的适用性。
30.在其中一个实施例中,提供了一种集群资源控制装置,所述集群包括登录节点,所述装置包括:
31.监听模块,用于监听所述登录节点的预设目录下是否存在创建预设文件的行为;其中,在预设目录下创建预设文件为每个用户在登陆所述集群的过程中的强制性行为;
32.资源控制模块,用于若存在,则根据所述用户的标识为所述用户配置资源控制策略,并根据所述资源控制策略对所述用户在所述登录节点的可用资源进行管理;其中,所述资源控制策略包括所述用户的可用资源配额。
33.一种集群,包括存储器及处理器,所述存储器中储存有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如上所述的蓝牙通信方法的步骤。
34.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的蓝牙通信方法的步骤。
35.上述集群资源控制方法和装置、集群、计算机可读存储介质,集群包括登录节点,该方法包括:监听登录节点的预设目录下是否存在创建预设文件的行为;其中,在预设目录下创建预设文件为每个用户登录集群的过程中进行环境加载的强制性行为。若存在,则根据用户的标识为用户配置资源控制策略,并根据资源控制策略对用户在登录节点的可用资源进行管理;其中,资源控制策略包括用户的可用资源配额。
36.由于在预设目录下创建预设文件为每个用户登录集群的过程中,在登录节点进行
环境加载时所必须执行的强制性行为,所以通过监听登录节点的预设目录下是否存在文件创建行为,来监听用户的登录行为,就不会遗漏任何用户的登录行为。然后,若监听到登录节点的预设目录下存在创建预设文件的行为,则根据用户的标识为用户配置资源控制策略,并根据资源控制策略对用户在登录节点的可用资源进行管理。因此,能够实现在对每个用户在登录节点进行资源限制时不会遗漏用户,保证集群正常运行。
附图说明
37.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为一个实施例中集群资源控制方法的应用环境图;
39.图2为一个实施例中集群资源控制方法的流程图;
40.图3为另一个实施例中集群资源控制方法的流程图;
41.图4为一个实施例中根据用户的标识为用户配置资源控制策略方法的流程图;
42.图5为另一个实施例中根据用户的标识为用户配置资源控制策略方法的流程图;
43.图6为一个具体的实施例中集群资源控制方法的流程图;
44.图7为一个实施例中集群资源控制装置的结构框图;
45.图8为另一个实施例中集群资源控制装置的结构框图;
46.图9为一个实施例中集群的内部结构示意图。
具体实施方式
47.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
48.集群主要由五类计算设备和三类网络组成。其中,五类计算设备主要是指管理节点及登录节点、计算节点、交换设备、i/o设备和存储设备。其中,登录节点相当于用户访问集群系统的网关,计算节点是整个集群的计算核心。用户通常在登录节点上进行简单编译并提交计算程序至计算节点,由计算节点运行计算程序。用户在登录节点上不能进行大规模编译以及并行编译,而在计算节点上可以进行大规模编译以及并行编译。
49.用户在登录集群之后,部分不熟悉集群操作的用户误将计算程序运行在登录节点上,或部分不良用户直接控制计算程序运行在登录节点上,以减少计算程序运行在计算节点所产生的费用。一般计算程序所占用的资源较大,若此时登录节点上运行了计算程序,就会导致登录节点的负载过高,一方面影响其他登陆用户的正常使用,另一方面影响集群系统正常运行。
50.传统方法,为了解决上述问题,通过cgroup技术对用户在登录节点的可用资源进行限制。但是,cgroup技术主要用于对用户在登录节点的共享资源进行限制,即对所有用户共同消耗的资源进行限制,很难实现对每个用户的可用资源进行限制。且若通过命令来限制单一用户的资源配置,会存在缺陷。例如,对命令启用后的第一个登录会话限制不生效
等。而若通过配置文件来限制单一用户的资源配置,则经常会出现遗漏对部分用户的资源配置。其中,cgroup是linux内核的一个功能,用来限制、控制与分离一个进程组群的资源(如cpu、内存、磁盘输入输出等)。
51.因此,本技术实施例中提出了一种集群资源控制方法,能够实现在对每个用户在登录节点进行资源限制时不会遗漏用户,从而保证集群正常运行。
52.图1为一个实施例中集群资源控制方法的应用场景图。如图1所示,该应用环境包括集群100,集群100包括登录节点120及计算节点140。用户基于其所在的终端160,通过登录节点登录集群,并在登录节点进行简单的编译行为。或者,用户基于登录节点与计算节点建立通信连接,并在计算节点上进行复杂的编译行为或运算。这里,集群100可以是hpc(high performance computing,高性能计算机集群),当然,本技术对此不做限定。其中,登录节点120及计算节点140均包括多台计算机设备(图中未示出多台计算机设备)。
53.图2为一个实施例中集群资源控制方法的流程图。本实施例中的集群资源控制方法,以运行于图1中的集群100上为例进行描述。该方法包括以下步骤220至步骤240,其中,
54.步骤220,监听登录节点的预设目录下是否存在创建预设文件的行为;其中,在预设目录下创建预设文件为每个用户登录集群的过程中进行环境加载的强制性行为。
55.其中,登录节点相当于用户访问集群系统的网关,因此,用户登录集群即相当于用户登录到集群的登录节点上。一般情况下,用户在登录集群的过程中,首先需要进行环境加载。本技术实施例中,在进行环境加载的过程中,自定义增加了必须在预设目录下创建预设文件的步骤,且该预设目录为创建临时缓存文件的目录。因此,在用户登录集群并进行环境加载的过程中,必须在预设目录下创建预设文件。
56.由于用户在预设目录下创建预设文件的行为,为每个用户登录集群并进行环境加载的过程中的强制性行为,即是每个用户登录集群的过程中进行环境加载所必须经过的步骤。因此,通过监听登录节点的预设目录下是否存在创建预设文件的行为,就可以准确地监听到用户登录集群的登录行为。
57.步骤240,若存在,则根据用户的标识为用户配置资源控制策略,并根据资源控制策略对用户在登录节点的可用资源进行管理;其中,资源控制策略包括用户的可用资源配额。
58.具体的,若监听到登录节点的预设目录下存在创建预设文件的行为,则根据用户的标识为该用户配置对应的资源控制策略。其中,用户的标识包括用户的id以及该用户登录该登录节点的登录进程id。且在资源控制策略中对用户所能够使用的资源及如何使用资源的策略进行了设置。例如,在资源控制策略中设置了用户在登录节点所能够使用的集群资源的预设类型及所能够使用的集群资源的预设使用额度等,还可以设置用户在登录节点上能够使用集群资源的预设时间等,本技术对此不做限定。其中,集群资源的预设类型包括cpu、内存、磁盘io等中的至少一种,预设使用额度包括cpu使用率最大为80%、内存占用大小最大为200g、cpu占用个数最大为8个等中的至少一种,预设时间包括该用户使用集群资源的时间为晚上10

12点等,本技术对此不做限定。
59.由于在资源控制策略中对用户所能够使用的资源及如何使用资源的策略进行了设置,因此,就可以基于资源控制策略,对用户在登录节点的可用资源进行管理。即对用户在登录节点所能够使用的资源及如何使用资源进行管理。
60.例如,在资源控制策略中设置了用户在登录节点所能够使用的集群资源的预设类型及所能够使用的集群资源的预设使用额度等,还可以设置用户在登录节点上能够使用集群资源的预设时间等,本技术对此不做限定。那么,就可以控制用户在登录节点仅能够使用预设类型对应的资源,且控制该用户占用该预设资源的大小不超过预设使用额度,控制该用户使用该预设资源的时间需要在预设时间范围内。
61.其中,对用户在登录节点的可用资源进行管理的主要步骤如下所示:
[0062][0063][0064]
本技术实施例中,由于在预设目录下创建预设文件为每个用户登录集群的过程中,在登录节点进行环境加载时所必须执行的强制性行为,所以通过监听登录节点的预设目录下是否存在文件创建行为,来监听用户的登录行为,就不会遗漏任何用户的登录行为。然后,若监听到登录节点的预设目录下存在创建预设文件的行为,则根据用户的标识为用户配置资源控制策略,并根据资源控制策略对用户在登录节点的可用资源进行管理。因此,能够实现在对每个用户在登录节点进行资源限制时不会遗漏用户,保证集群正常运行。
[0065]
在一个实施例中,预设目录包括/tmp目录所包含的自定义子目录。
[0066]
其中,linux系统中的/etc/profile.d目录下包括用户进行环境加载所需的环境变量。由于在linux系统中普通用户在登录集群的过程中,均需要在/etc/profile.d目录下加载环境变量,并基于所加载的环境变量在预设目录下创建预设文件以实现环境加载。其中,预设目录为/tmp目录所包含的自定义子目录,在/tmp目录所包含的自定义子目录下所创建的预设文件为临时文件。
[0067]
具体的,集群中所采用的操作系统为linux系统,在linux系统中普通用户登录集群的过程中,登录节点均需要在/etc/profile.d目录下加载环境变量。因此,可以强制用户在加载环境变量的过程中,在/tmp目录所包含的自定义子目录下创建临时文件。
[0068]
本技术实施例中,由于在linux系统中普通用户登录集群时,均需要在/etc/profile.d目录下加载环境变量。因此,可以强制用户在加载环境变量的过程中,在/tmp目
录所包含的自定义子目录下创建临时文件,因此,通过监听登录节点的/tmp目录所包含的自定义子目录下是否存在创建临时文件的行为,就可以准确地监听到每个用户登录集群的登录行为,不会遗漏任何一个用户的登录行为。进而,就可以针对每个用户进行资源管理,避免了出现单一用户在登录节点恶意运行复杂的计算程序,或因为不熟悉集群操作误将计算程序运行在登录节点,造成登录节点长时间超负荷运行、导致集群死机,以至于影响集群的正常运行的情况。
[0069]
在一个实施例中,预设文件为自定义文件;监听登录节点的预设目录下是否存在创建预设文件的行为,包括:
[0070]
通过inotify工具监听/tmp目录所包含的自定义子目录下是否存在创建自定义文件的行为。
[0071]
其中,inotify工具,也称之为inotify文件监控工具,是一种强大的、细粒度的异步文件系统监控机制,inotify工具可以满足各种各样的文件监控需要。具体可以监控文件系统的访问属性、读写属性、权限属性以及删除、创建、移动等操作,即可以监控文件发生的几乎所有变化。其中,inotify

tools是在linux系统下为inotify文件监控工具所提供的一套基于c语音的开发接口库函数,同时还提供了一系列的命令行工具,这些工具可以用来监控文件系统的事件。由于inotify

tools是用c语音编写的,所以除了要求内核支持外,不依赖于其他软件。
[0072]
具体的,由于在linux系统中普通用户登录集群时,均需要在/tmp目录下,加载环境变量并创建临时文件以进行环境加载。其中,临时文件为自定义文件,并不对该临时文件的内容进行限制。因此,在登录节点,通过inotify工具监听/tmp目录所包含的自定义子目录下是否存在创建自定义文件的行为,就可以准确地监听到每个用户登录集群的登录行为,不会遗漏任何一个用户的登录行为。
[0073]
其中,临时文件为自定义文件,例如sshcgroup.sh文件和sshcgroup.csh文件,本技术对此不做限定。这两个文件为每个用户登录集群的过程中进行环境加载时在/tmp目录所包含的自定义子目录下所创建的文件。
[0074]
其中,通过inotify工具监听/tmp目录所包含的自定义子目录下是否存在创建自定义文件的行为的主要步骤如下:
[0075]
inotifywait

mq
‑‑
format'%f'

e create$cgtmp_path|while read

r file
[0076]
本技术实施例中,由于inotify工具可以监控文件发生的变化,因此,在登录节点,就可以通过inotify工具准确地监听登录节点的预设目录下是否存在创建预设文件的行为。进而,若监听到登录节点的预设目录下存在创建预设文件的行为,则根据用户的标识为用户配置资源控制策略,并根据资源控制策略对用户在登录节点的可用资源进行管理。因此,能够实现在对每个用户在登录节点进行资源限制时不遗漏任何一个用户,保证集群正常运行。
[0077]
在一个实施例中,如图3所示,用户的标识包括用户的id以及用户登录登录节点的登录进程id;在根据用户的标识为用户配置资源控制策略之前,还包括:
[0078]
步骤230,从自定义文件中获取用户的id以及该用户登录该登录节点的登录进程id。
[0079]
用户的标识包括用户的id以及用户登录登录节点的登录进程id。具体的,监听登
录节点的预设目录下是否存在创建自定义文件的行为,若监听到登录节点的预设目录下存在创建自定义文件的行为,则从自定义文件中获取用户的id以及该用户登录该登录节点的登录进程id。因为在用户登录集群的过程中,登录节点基于该用户的id以及此时该用户在登录节点进行登录时所产生的登录进程id,在预设目录下进行创建自定义文件,所以集群从自定义文件中就可以获取到用户的id以及该用户登录该登录节点的登录进程id。
[0080]
其中,用户id(identification)是用户通过终端登录集群的登录节点时唯一的身份标识,用于辨识不同的用户,可以用uid进行表示。登录进程的id是用户在登录节点进行登录时所产生的登录进程的身份标识,可以用pid进行表示。基于登录进程的id,就可以获取到该登录进程的id下所有子进程的id。
[0081]
其中,集群从自定义文件中获取uid及pid的主要步骤如下所示:
[0082]
本技术实施例中,因为在用户登录了集群的登录节点的过程中,由于登录节点是基于该用户的id以及此时该用户在登录节点进行登录时所产生的登录进程id,在预设目录下进行创建自定义文件,所以集群从自定义文件中就可以获取到用户的id以及该用户登录该登录节点的登录进程id。便于后续跟进用户的id以及该用户登录该登录节点的登录进程id,为该用户配置资源控制策略,并根据资源控制策略对用户在登录节点的可用资源进行管理。
[0083]
在一个实施例中,如图4所示,步骤240,根据用户的标识为用户配置资源控制策略,包括:
[0084]
步骤242,判断登录节点上是否存在与用户的标识对应的资源控制组,资源控制组包括资源控制策略;
[0085]
步骤244,若存在,则将资源控制组中的资源控制策略配置给用户的标识。
[0086]
具体的,监听登录节点的预设目录下是否存在创建预设文件的行为。若监听登录节点的预设目录下存在创建预设文件的行为,则获取用户的标识。其中,用户的标识包括用户id及用户在登录节点进行登录时所产生的登录进程的id。
[0087]
进一步,判断登录节点上是否存在与用户的标识对应的资源控制组cgroup。其中,资源控制组包括资源控制策略,且预先为每个用户配置唯一的资源控制组。资源控制组(cgroups)是linux内核的一个特性,主要用来对共享资源进行隔离、限制、审计等。只有控
制分配到不同容器的资源,才能避免多个容器同时运行时对宿主机系统的资源竞争。因此,不同的资源控制组可以提供对不同容器的内存、cpu、磁盘io等资源分别进行限制和计费管理。
[0088]
由于预先为每个用户配置了唯一的资源控制组,所以若登录节点上存在与用户的标识对应的资源控制组,则可以将资源控制组中的资源控制策略配置给用户的标识,即将该用户的标识加入对应的资源控制组。从而,就可以基于该资源控制组中的资源控制策略对用户在登录节点的可用资源进行单独地管理,不用像传统方法中仅仅能够控制所有用户共享所有的资源,而造成资源配置不平衡。
[0089]
本技术实施例中,若监听登录节点的预设目录下存在创建预设文件的行为,则获取用户的用户id及用户在登录节点进行登录时所产生的登录进程的id。判断登录节点上是否存在与用户的标识对应的资源控制组,若存在,则将资源控制组中的资源控制策略配置给用户的标识,即将用户id加入资源控制组。后续,在获取了该用户id对应的登录进程的id下所有子进程的id之后,就可以基于该资源控制组中预先设置的资源控制策略,对该用户id对应的所有子进程,在登录节点的可用资源进行管理。
[0090]
因此,能够实现对每个用户对应的所有子进程在登录节点进行资源限制,保证集群正常运行。
[0091]
在一个实施例中,如图5所示,根据用户的标识为用户配置资源控制策略,还包括:
[0092]
步骤246,若不存在,则创建新的资源控制组,并建立用户的标识与新的资源控制组之间的对应关系;
[0093]
步骤248,将新的资源控制组中的资源控制策略配置给用户的标识。
[0094]
具体的,监听登录节点的预设目录下是否存在创建预设文件的行为。若监听登录节点的预设目录下存在创建预设文件的行为,则获取用户的标识。其中,用户的标识包括用户id及用户在登录节点进行登录时所产生的登录进程的id。
[0095]
进一步,判断登录节点上是否存在与用户的标识对应的资源控制组cgroup。若登录节点上不存在与用户的标识对应的资源控制组,则说明该用户是第一次登录集群。由于该用户是第一次登录集群,所以登录节点上未预先存储与该用户对应的资源控制组。因此,可以为该用户建立新的资源控制组,并建立用户的标识与新的资源控制组之间的对应关系。同理,资源控制组包括资源控制策略。
[0096]
如此,在为该用户建立新的资源控制组之后,则将新的资源控制组中的资源控制策略配置给用户的标识,即将该用户的标识加入对应的资源控制组。从而,就可以基于该资源控制组中的资源控制策略对该用户在登录节点的可用资源进行单独地管理,不用像传统方法中仅仅能够控制所有用户共享所有的资源,而造成资源配置不平衡。
[0097]
其中,为用户创建资源控制组的主要步骤如下所示:
[0098]
cgcreate

g memory,cpu,cpuset:$login_user
[0099]
cgset

r cpu.cfs_quota_us=180000

r memory.limit_in_bytes=4g

rmemory.oom_control=1

r cpuset.cpus=$cpus_set

r cpuset.mems=$mem_node$login_user
[0100]
本技术实施例中,若监听登录节点的预设目录下存在创建预设文件的行为,则获取用户的用户id及用户在登录节点进行登录时所产生的登录进程的id。判断登录节点上是
否存在与用户的标识对应的资源控制组,若存在,则将资源控制组中的资源控制策略配置给用户的标识,即将用户id加入资源控制组。若不存在,则创建新的资源控制组,并建立用户的标识与新的资源控制组之间的对应关系,将新的资源控制组中的资源控制策略配置给用户的标识。实现了针对登录节点上存在资源控制组的用户id,或登录节点上不存在资源控制组的用户id,均可以将用户id加入资源控制组。后续,在获取了该用户id对应的登录进程的id下所有子进程的id之后,就可以基于该资源控制组中预先设置的资源控制策略,对该用户id对应的所有子进程,在登录节点的可用资源进行管理。
[0101]
因此,能够实现对每个用户对应的所有子进程在登录节点进行资源限制,保证集群正常运行。
[0102]
在一个实施例中,用户包括bash类型用户或csh类型用户。
[0103]
其中,bash和csh是linux中shell的类型,bash是bourne again shell的缩写,是linux标准的默认shell。而cshell(csh)提供了bourne shell所不能处理的用户交互特征,如命令补全、命令别名、历史命令替换等。但是,cshell与bourneshell并不兼容。
[0104]
具体的,用户在linux系统中,可以选择使用不同的shell环境,一般默认的都是bash,即用户执行命令或其他可执行脚本时,将这些命令或脚本解释成系统可以识别的指令所用的环境,是根据用户的默认shell来决定的(在脚本不指定的情况下)。例如,bash类型用户的默认shell是bash,csh用户类型的默认shell是csh。
[0105]
本技术实施例中,所提供的集群资源控制方法适用于bash类型用户或csh类型用户,本技术对此不做限定。因此,可以针对各种各样的用户进行集群资源控制,提高了该集群资源控制方法的适用性。
[0106]
在一个具体的实施例中,如图6所示,提供了一种集群资源控制方法,应用于hpc(high performance computing,高性能计算机集群),这里,集群包括登录节点及计算节点。该方法包括以下步骤,其中,
[0107]
步骤602,通过inotify工具监听登录节点的/tmp目录所包含的自定义子目录下是否存在创建自定义文件的行为;
[0108]
步骤604,若存在,则从自定义文件中获取用户的id以及该用户登录该登录节点的登录进程id;
[0109]
步骤606,判断登录节点上是否存在与用户的标识对应的资源控制组,资源控制组包括资源控制策略;
[0110]
步骤608,若存在,则将资源控制组中的资源控制策略配置给用户的标识。
[0111]
步骤610,若不存在,则创建新的资源控制组,并建立用户的标识与新的资源控制组之间的对应关系;将新的资源控制组中的资源控制策略配置给用户的标识;
[0112]
步骤612,根据资源控制策略对用户在登录节点的可用资源进行管理。
[0113]
本技术实施例中,由于inotify工具可以监控文件发生的一切变化,因此,在登录节点,就可以通过inotify工具准确地监听登录节点的预设目录下是否存在创建预设文件的行为。进而,若监听到登录节点的预设目录下存在创建预设文件的行为,则进一步判断登录节点上是否存在与用户的标识对应的资源控制组,资源控制组包括资源控制策略。若存在,则将资源控制组中的资源控制策略配置给用户的标识。若不存在,则创建新的资源控制组,并建立用户的标识与新的资源控制组之间的对应关系,将新的资源控制组中的资源控
制策略配置给用户的标识。最后,就可以基于资源控制组中的资源控制策略,对用户在登录节点的可用资源进行管理。因此,能够实现对每个用户在登录节点进行资源限制,保证集群正常运行。
[0114]
在一个实施例中,如图7所示,提供了一种集群资源控制装置700,其特征在于,集群包括登录节点,该装置包括:
[0115]
监听模块720,用于监听登录节点的预设目录下是否存在创建预设文件的行为;其中,在预设目录下创建预设文件为每个用户登录集群的过程中进行环境加载的强制性行为;
[0116]
资源控制模块740,用于若存在,则根据用户的标识为用户配置资源控制策略,并根据资源控制策略对用户在登录节点的可用资源进行管理;其中,资源控制策略包括用户的可用资源配额。
[0117]
在一个实施例中,预设目录包括/tmp目录所包含的自定义子目录。
[0118]
在一个实施例中,预设文件为自定义文件;监听模块720,还用于通过inotify工具监听/tmp目录所包含的自定义子目录下是否存在创建自定义文件的行为。
[0119]
在一个实施例中,如图8所示,提供了一种集群资源控制装置,用户的标识包括用户的id以及用户登录登录节点的登录进程id;在根据用户的标识为用户配置资源控制策略之前,还包括:
[0120]
id获取模块730,用于从自定义文件中获取用户的id以及该用户登录该登录节点的登录进程id。
[0121]
在一个实施例中,资源控制模块740,还用于判断登录节点上是否存在与用户的标识对应的资源控制组,资源控制组包括资源控制策略;若存在,则将资源控制组中的资源控制策略配置给用户的标识。
[0122]
在一个实施例中,资源控制模块740,还用于若不存在,则创建新的资源控制组,并建立用户的标识与新的资源控制组之间的对应关系;将新的资源控制组中的资源控制策略配置给用户的标识。
[0123]
在一个实施例中,用户包括bash类型用户或csh类型用户。
[0124]
应该理解的是,虽然上述图中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0125]
上述集群资源控制装置中各个模块的划分仅用于举例说明,在其他实施例中,可将集群资源控制装置按照需要划分为不同的模块,以完成上述集群资源控制装置的全部或部分功能。
[0126]
关于集群资源控制装置的具体限定可以参见上文中对于集群资源控制方法的限定,在此不再赘述。上述集群资源控制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以
以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0127]
在一个实施例中,还提供了一种集群,包括存储器及处理器,存储器中储存有计算机程序,计算机程序被处理器执行时,使得处理器执行以上各个实施例所提供的一种集群资源控制方法的步骤。
[0128]
图9为一个实施例中集群的内部结构示意图。如图9所示,该集群包括通过系统总线连接的处理器和存储器。其中,该处理器用于提供计算和控制能力,支撑整个集群的运行。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以上各个实施例所提供的一种集群资源控制方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。该集群可以是手机、平板电脑、pda(personal digital assistant,个人数字助理)、pos(point of sales,销售终端)、车载电脑、穿戴式设备等任意终端设备。
[0129]
本技术实施例中提供的集群资源控制装置中的各个模块的实现可为计算机程序的形式。该计算机程序可在集群上运行。该计算机程序构成的程序模块可存储在集群的存储器上。该计算机程序被处理器执行时,实现本技术实施例中所描述方法的步骤。
[0130]
本技术实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当计算机可执行指令被一个或多个处理器执行时,使得处理器执行集群资源控制方法的步骤。
[0131]
一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行集群资源控制方法。
[0132]
本技术实施例所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram),它用作外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddr sdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)。
[0133]
以上集群资源控制实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献