CN108334409A - 一种细粒度的高性能云资源管理调度方法 - Google Patents
一种细粒度的高性能云资源管理调度方法 Download PDFInfo
- Publication number
- CN108334409A CN108334409A CN201810033927.3A CN201810033927A CN108334409A CN 108334409 A CN108334409 A CN 108334409A CN 201810033927 A CN201810033927 A CN 201810033927A CN 108334409 A CN108334409 A CN 108334409A
- Authority
- CN
- China
- Prior art keywords
- user
- resource
- slurm
- cpu
- node
- 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
-
- 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/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/5022—Mechanisms to release resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/504—Resource capping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/168—Implementing security features at a particular protocol layer above the transport layer
Abstract
本发明公布了一种细粒度的高性能云资源管理调度方法,通过限制用户登录计算节点、按核心与内存同比例资源调度、限制每个GPU使用CPU核数、作业结束释放占用资源以及SSH登陆使用资源管理、登录节点资源限制等方式,可用来改进SLURM作业调度系统中任务按照CPU核心进行分配时的内存和GPU资源的管理,并实现对用户SSH登录的资源进行Cgroup限制,从而完善基于SLURM的资源调度系统,使得高性能云平台资源调度更加高效与合理。
Description
技术领域
本发明涉及高性能计算技术,尤其涉及一种细粒度的高性能云资源管理调度方法。
背景技术
高性能计算通常使用并行化技术来高效、快速并可靠地运行应用程序,通常使用多个处理器(作为单个机器的一部分)或者某一集群中组织的多台计算机并行执行同一个作业,以达到单个机器无法达到的性能。高性能计算主要用于处理复杂的计算问题,可应用在大规模科学计算的环境中,主要涉及天气预报、核武器研究、核材料储存仿真、石油勘探与油储模拟、生物信息技术以及基因测序等。
SLURM(Simple Linux Utility for Resource Management,Linux平台简单实用资源管理工具)是一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统。SLURM维护着一个待处理的作业的队列并管理此作业的整体资源利用。SLURM还以一种排他的方式管理可用的计算节点,将作业分发给一组已分配的节点来执行作业并监视平行作业直至完成。
SLURM资源管理模块主要负责对系统资源进行管理、分配和收集,在主控制节点即管理节点上会有中心守护进程(slurmctld)驻留,在计算节点上会有监控进程(slurmd)驻留。slurmd调用相应的资源收集信息函数,收集本地资源信息。初始时,计算节点的节点守护进程向中心守护进程发送信息注册,之后主控进程(slurmctld)定期的向此节点进行询问以便了解整个系统的情况。
Cgroup(control groups)是Linux内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如:CPU,memory,IO等)机制。SLURM提供了一些Cgroup插件,比如proctrack(进程追踪)、task(任务管理)、jobacct_gather(作业数据统计)等,其中TASK/CGROUP插件可以用来限制作业的资源,每个用户只能使用自己申请到的资源(包括CPU、内存、GPU等),有效的保证了系统资源的合理利用。
cpulimit是一种指令,用来限制一个进程的CPU,其工作原理是为进程预设一个CPU占用率门限,并实时监控进程是否超过此门限,若超过则让该进程暂停运行一段时间。cpulimit可以用来控制CPU占用率高的进程,可有效限制运行大规模消耗CPU的程序。
SLURM调度系统支持按照核心而不是节点申请资源,但现有技术并没有设置核心与内存资源的绑定,即用户可以在拥有32个核心的节点上申请一个核心,并申请使用该节点所有的内存资源,这使得剩余的31个核心有CPU资源但没有内存资源而无法使用。对于一个有2个GPU(Graphics Processing Units,图形处理单元),12个CPU核心的GPU节点,如果用户申请1个GPU而使用12个CPU核心,则会导致剩余的1个GPU由于没有CPU而无法使用,造成资源浪费。此外,SLURM调度系统使用默认配置,用户可以登录任何计算节点,用户SSH登录计算节点运行作业,不受资源管理限制,这导致用户可以滥用系统资源。由于SLURM资源管理存在上述缺陷,现有的资源管理调度方法难以解决用户资源申请分配不均、资源限制漏洞等问题。另外,在高性能云平台中,登录节点作为用户登录平台的入口,如果不对登录节点进行资源限制,用户滥用登录节点资源,可能会导致登录节点宕机,平台瘫痪等问题。
发明内容
为了克服上述现有技术的不足,本发明提供一种细粒度的高性能云资源管理调度方法,通过登录节点资源限制,采用按核分配、内存同比例配备节点资源,GPU节点根据申请GPU个数限制CPU申请个数,限制用户登录计算节点,对用户SSH登录使用的资源进行监控限制等方式,解决现有技术中使用SLURM进行资源管理调度而导致的用户资源申请分配不均与资源限制漏洞等问题。
本发明提供的技术方案是:
一种细粒度的高性能云资源管理调度方法,基于SLURM资源调度,采用包括:登录节点资源限制、限制用户登录计算节点、按核心与内存同比例资源调度、限制每个GPU使用CPU核数、作业结束释放占用资源以及SSH(Secure Shell)登录资源管理等方式,形成细粒度的资源管理调度,使得云资源管理调度更完善、性能更高;在本发明将高性能云平台的所有节点归为三类,一类是登录节点,用于用户登录,第二类是管理节点,用于配置SLURM管理控制服务,不允许用户登录,第三类是计算节点,用于提供高性能云的具体计算服务;细粒度的高性能云资源管理调度方法具体如下:
A.限制用户登录计算节点是指用户在没有正在运行的作业的情况下不允许登录计算节点;用户首先通过提交作业申请资源,用户只有在当前计算节点有正在运行的作业才能登录当前计算节点;
B.按核心与内存同比例资源调度是指按照核心与内存的同比例分配系统资源;内存资源按照式1计算:
每核心内存=节点总内存/总核心数 (式1)
采用内存资源与CPU核心绑定的方式对系统资源进行分配,用户申请的内存总数根据申请的核心数进行调整,不允许用户另外申请内存资源。
C.SSH登录资源管理是指某用户申请到资源之后,通过SSH的方式登录到用户有正在运行作业的计算节点,此时用户占用的资源全部归并到用户的作业申请到的资源中;如果用户在当前计算节点有多个作业,则将当前SSH登录占用的资源归并到用户任一作业申请到的资源中。
SSH登录资源管理建立在限制用户登录计算节点之上,用户只有在计算节点有正在运行的作业才能登录计算节点。
D.作业结束释放占用资源是指当用户作业取消或者完成时,如果用户在该计算节点没有其他正在运行的作业,则杀死该用户在该计算节点上的所有进程。
E.限制GPU使用CPU核数是指申请GPU资源时,根据申请GPU个数限制能申请的CPU个数,用户作业申请CPU与GPU比例超过限定时,禁止作业运行;
F.登录节点资源限制是指不允许用户在登录节点运行大规模程序,在登陆节点实时监控CPU占用率高的进程,并通过cpulimit指令对这些进程进行CPU资源限制。
与现有技术相比,本发明的有益效果是:
本发明提供一种基于SLURM调度的细粒度资源管理调度方法,主要用于改进SLURM作业调度系统中任务按照CPU核心进行分配时的内存资源的管理,GPU节点按照GPU与CPU两种资源的比例,实现GPU节点资源的合理分配,并实现对用户SSH登录的资源进行Cgroup限制。本发明方法不同于现有按照节点分配的作业调度方式,而采用基于节点中核心与内存同比例分配的作业调度方式,通过限制用户登录计算节点、按核心与内存同比例资源调度、限制每个GPU使用CPU核数、作业结束释放占用资源及SSH登录资源管理,完善用户通过SSH登录资源不受限制的漏洞,并在高性能云平台登录节点进行资源限制,从而实现了一个细粒度的资源管理调度方法,使得云资源管理调度更完善、性能更高。
附图说明
图1是本发明具体实现细粒度资源调度方法的实施流程框图。
图2是采用本发明提供的细粒度资源调度方法,对用户SSH登录计算节点使用资源进行调度的流程框图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
针对现有技术使用SLURM系统中的用户资源申请分配不均与资源限制漏洞等问题,本发明提出一种细粒度的高性能云资源管理调度方法,通过限制用户登录计算节点、按核心与内存同比例资源调度、限制每个GPU使用CPU核数、作业结束释放占用资源以及SSH登录使用资源的管理等方式,完善基于SLURM的资源调度系统,使得高性能云平台资源调度更加高效与合理。
图1是本发明提供的细粒度资源调度方法实现的实施流程图。其中,限制用户登录计算节点是指用户在没有正在运行的作业的情况下不允许登录计算节点。具体实现是配置SLURM的pam_slurm_adopt插件,该插件的作用为在用户没有作业时禁止用户登录计算节点,并在用户有作业运行情况下,追踪SSH登录计算节点所使用的资源,主要实现分为以下步骤:
步骤11:配置SLURM,允许其使用pam_slurm_adopt插件,在slurm.conf文件中增加以下一行:
UsePAM=1
步骤12:在/etc/pam.d/sshd中,添加以下一行使用pam_slurm_adopt.so插件。
account sufficient pam_slurm_adopt.so
步骤13:将/etc/pam.d/password-auth文件中注释以下两行,因为pam_systemd.so插件会影响pam_slurm_adopt.so插件的使用。
account sufficient pam_localuser.so
-session optional pam_systemd.so
按核心与内存同比例资源调度是指按照核心与内存的同比例分配系统资源,即内存资源按照(每核心内存=节点总内存/总核心数)的计算方式,以与CPU核心绑定的方式进行分配,用户申请的内存总数根据申请的核心数进行调整,不允许用户另外申请内存资源。
主要实现分为以下步骤:
步骤21:在SLURM中添加对Cgroup的使用,在slurm.conf文件中增加以下三行内容,其中proctrack/cgroup插件是允许Cgroup追踪作业资源,task/cgroup是用来进行作业管理,其中pam_slurm_adopt.so插件必须在task/cgroup插件开启下才能生效,jobacct_gather/cgroup插件使用来统计作业数据的;
ProctrackType=proctrack/cgroup
TaskPlugin=task/cgroup
JobAcctGatherType=jobacct_gather/cgroup
步骤22:在Cgroup中,使用CPU和内存作为对作业资源的限制,在slurm.conf文件目录下添加cgroup.conf文件,文件内容为:
ConstrainCores=yes
ConstrainRAMSpace=yes
ConstrainDevices=yes
AllowedDevicesFile=/etc/slurm/cgroup_allowed_devices_file.conf
其中:
添加/etc/slurm/cgroup_allowed_devices_file.conf文件,内容如下:
/dev/null
/dev/urandom
/dev/zero
/dev/sda*
/dev/cpu/*/*
/dev/pts/*
/dev/nvidia*
即表明默认情况下/dev文件夹下的内存,GPU,存储等资源允许所有用户作业使用。
步骤23:配置每个节点的默认每核心的内存,比如某分区节点C032M0512G有一个节点CN01,其配置为32个核心,256G内存,则每个核心默认可以使用256G/32=8192M内存,但实际上每个节点都有系统的必要守护进程,需要占用一些内存资源,因此实际每核心分配的内存数小于8192M,比如7960M,具体大小通过在SLURM配置文件slurm.conf文件中设置DefMemPerCPU(每核心默认内存值)大小,参照以下一行的配置方式,如果slurmctld服务因此无法启动,就需要适当调低每核心默认内存值;
PartitionName=C032M0512G Nodes=CN01DefMemPerCPU=7960
步骤24:删除SLURM作业提交的mem、mem-per-cpu功能。
其中,mem和mem-per-cpu功能用来申请作业的内存资源,用户可以自己申请内存资源,这会使得默认每核心分配内存的配置失效,用户可以使用一个核心而使用节点所有内存资源,因此需要删除SLURM中作业提交时的这两个功能。在SLURM中作业提交以及资源申请有三个命令,分别为srun、sbatch、salloc,因此需要修改SLURM作业提交插件的脚本,使得mem、mem-per-cpu这两个功能在这三个指令中失效,下面的实现在SLURM 17.11版本中可行;具体包括执行如下操作:
步骤241,在编译SLURM时确使其保带有LUA插件,编译SLURM可以使用以下指令:
rpmbuild-ta-with lua-with hwloc slurm-17.11.0-0rc2.tar.bz2
步骤242,在SLURM配置文件目录下的job_submit.lua文件中的函数functionslurm_job_submit(job_desc,part_list,submit_uid)中,添加以下代码片段:
上述操作使得mem以及mem-per-cpu功能在srun,sbatch,salloc指令中失效。
SSH资源管理是指用户申请到资源之后,本段中用户均指同一个用户。通过SSH的方式登录到用户有正在运行作业的计算节点,此时用户占用的资源全部归并到用户的作业申请到的资源中,如果用户在当前计算节点有多个作业,则将当前SSH登录占用的资源归并到该用户在当前计算节点任一作业申请的资源中。
SSH资源管理建立在限制用户登录计算节点之上,用户只有在计算节点有正在运行的作业才能登录计算节点。主要实现分为以下两个步骤:
步骤31:在SLURM中添加允许pam_slurm_adopt.so插件的使用;
步骤32:pam_slurm_adopt.so插件中实现了当前SSH登录的进程所使用的资源归并到任意当前用户的正在运行的作业申请到的资源限制中。
作业结束释放占用资源是指当用户作业取消或者完成时,如果用户在该计算节点没有其他正在运行的作业,则杀死该用户在该计算节点上的所有进程。其实现主要分为两个步骤:
步骤41:在SLURM中允许epilog脚本的运行。epilog是每一次作业运行完成之后SLURM自动调用的脚本,epilog脚本存放的位置一般是SLURM配置文件slurm.conf所在的目录,即/etc/slurm,在slurm.conf文件中增加以下一行允许epilog脚本运行;
Epilog=/etc/slurm/epilog
步骤42:在epilog脚本中实现当作业运行结束之后,如果当前计算节点没有该用户正在运行的作业,则杀死当前用户在该计算节点上所有的进程,具体实现方式如下。
限制GPU使用CPU核数是指GPU节点根据申请GPU个数限制申请的CPU个数,比如一个GPU节点有12个CPU,2个GPU,则根据式2得到(每个GPU可用CPU数=12/2=6),如果一个用户某作业申请1个GPU,并同时申请7个CPU,则该作业会被禁止运行。具体实现步骤如下:
步骤51:配置GRES(generic resource,通用资源)插件,GRES插件是SLURM用来提供对通用资源,如GPU和MIC(Many Integrated Core,众核处理器)资源的管理的插件,在SLURM的配置文件slurm.conf文件中增添以下一行支持GRES插件对GPU资源的支持:
GresTypes=gpu
步骤52:在SLURM配置文件所在的目录下增添gres.conf文件,文件中内容可参照如下:
NodeName=gpu[01-10]Name=gpu File=/dev/nvidia[0-1]
步骤53:在LUA插件中增添限制GPU的功能,即在SLURM配置文件目录下的job_submit.lua文件中的函数function slurm_job_submit(job_desc,part_list,submit_uid)中,添加以下代码片段:
上述中desc.min_cpus表示用户申请的CPU核数,gpu_number表示用户申请的GPU个数,在上述GPU节点配置中,每个GPU可用的CPU数为12/2=6,因此如果
job_desc.min_cpus>gpu_number*6(式5)
即表示用户作业申请的每个GPU可用CPU数大于6,即大于每GPU可用的CPU数,因此此时应禁止该作业运行,提示用户并报错为“A GPU is equip with 6CPUs,theCPUsexceeded”。
登录节点资源限制是指不允许用户在登录节点运行大规模程序,登录节点主要用于用户登陆,用户编辑、修改作业脚本,提交作业,是用户进入高性能云平台的入口,如果用户在登录节点运行大规模作业,可能会导致登录节点宕机,其他用户无法登陆高性能云平台。因此在登陆节点进行资源限制,其中资源限制主要指对CPU资源的限制。具体实现步骤如下:
步骤61:在登陆节点安装cpulimit指令;
步骤62:编写/etc/cpulimit.sh的脚本,脚本代码参考如下:
上述代码表示取出当前系统中CPU占用率前5的进程,如果这些进程的CPU占用率超过70%。并且这些进程的拥有者不是root用户的话,就用cpulimit指令控制这些进程的CPU占用率在50%以下。
步骤63:在登录节点的/etc/crontab中添加以下一行,表示每隔一分钟系统自动执行/etc/cpulimit.sh脚本,监控登录节点的进程CPU占用率。
*/1****root/etc/cpulimit.sh
图2所示为完成细粒度高性能云资源管理调度管理后,用户用SSH登录计算节点的方式提交作业的流程。当用户在当前计算节点没有正在运行的作业时,不允许登录该计算节点。用户SSH登录计算节点使用的资源归并到当前正在运行的作业中,用户在当前节点的作业取消或者完成后,调用epilog脚本判断用户在当前计算节点是否还有正在运行的作业,如果没有,则杀死用户在当前计算节点的所有进程。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (10)
1.一种云资源管理调度方法,基于SLURM资源调度,通过限制用户登录计算节点、按核心与内存同比例资源调度、作业结束释放占用资源、SSH登录资源管理、限制GPU使用CPU核数、登录节点资源限制方式,形成细粒度高性能的资源管理调度;具体地:
A.限制用户登录计算节点,当用户没有正在运行的作业时,不允许该用户登录计算节点;用户首先通过提交作业申请资源;用户只有在当前节点有正在运行的作业才能登录当前的节点;
B.按CPU核心与内存同比例进行资源分配调度,采用内存资源与CPU核心绑定的方式对系统资源进行分配,用户申请的内存总数根据申请的CPU核心数进行调整,不允许用户另外申请内存资源;
C.SSH登录资源管理:用户申请到资源之后,通过SSH的方式登录到计算节点,此时用户占用的资源全部归并到用户作业申请到的资源中;如果用户在当前计算节点有多个作业,则将当前SSH登录占用的资源归并到用户任一作业申请到的资源中;
D.作业结束释放占用资源:当用户作业取消或完成时,如果用户在该计算节点没有其他正在运行的作业,则杀死该用户在该计算节点上的所有进程。
E.限制GPU使用CPU核数:当申请GPU资源时,根据申请GPU的个数限制能申请的CPU个数;当用户作业申请的CPU与GPU比例超过限定时,禁止作业运行;
F.限制登录节点资源,不允许用户在登录节点运行大规模程序:在登录节点实时监控CPU占用率高的进程,对这些进程进行CPU资源限制。
2.如权利要求1所述云资源管理调度方法,其特征是,B中内存资源具体通过式1计算得到:
每核心内存=节点总内存/总核心数 (式1)
从而使得用户申请的内存总数根据申请到的核心数进行调整。
3.如权利要求1所述云资源管理调度方法,其特征是,A具体通过配置SLURM的pam_slurm_adopt插件,使得用户在没有正在运行的作业的情况下不允许登录计算节点;所述pam_slurm_adopt插件在用户没有作业时阻止用户登录计算节点,并在用户有作业运行情况下,追踪SSH登录计算节点所使用的资源;具体执行如下操作:
步骤11:配置SLURM,允许使用pam_slurm_adopt插件,在slurm.conf文件中增加UsePAM=1;
步骤12:在/etc/pam.d/sshd中,添加pam_slurm_adopt.so插件的使用;
步骤13:修改/etc/pam.d/password-auth文件,使得pam_slurm_adopt.so插件能够正常使用。
4.如权利要求1所述云资源管理调度方法,其特征是,B按照核心与内存同比例分配系统资源,具体执行如下操作:
步骤21:在SLURM中添加对Cgroup的使用,修改slurm.conf文件,使其通过proctrack/cgroup插件允许Cgroup追踪作业资源;通过task/cgroup插件进行作业管理;通过jobacct_gather/cgroup插件统计作业数据;
步骤22:在Cgroup中,使用CPU和内存作为对作业资源的限制,在slurm.conf文件目录下添加cgroup.conf文件,cgroup.conf文件中添加/etc/slurm/cgroup_allowed_devices_file.conf文件,使得在默认情况下/dev文件夹下的内存、GPU、存储等资源允许所有用户作业使用;
步骤23:配置每个节点的默认的每核心的内存大小;
步骤24:删除SLURM作业提交的mem、mem-per-cpu功能,使得用户不能自己申请内存资源。
5.如权利要求4所述云资源管理调度方法,其特征是,步骤24在SLURM 17.11版本中实现,具体执行如下操作:
步骤241,编译安装SLURM时添加参数使SLURM带有LUA插件;
步骤242,修改job_submit.lua文件中的函数function slurm_job_submit(job_desc,part_list,submit_uid),使得mem以及mem-per-cpu在srun,sbatch,salloc指令中失效。
6.如权利要求1所述云资源管理调度方法,其特征是,C中SSH登录资源管理具体通过在SLURM中添加允许pam_slurm_adopt.so插件的使用,由pam_slurm_adopt.so插件实现当前SSH登录的进程占用的资源归并到当前用户的任意正在运行的作业申请到的资源限制中。
7.如权利要求1所述云资源管理调度方法,其特征是,D中作业结束释放占用资源,具体通过在SLURM中允许epilog脚本的运行,再通过epilog脚本实现当作业运行结束之后,如果当前计算节点没有该用户正在运行的作业,则杀死当前用户在该计算节点上所有的进程。
8.如权利要求1所述云资源管理调度方法,其特征是,E中限制GPU使用CPU核数,具体通过在编译SLURM时带有LUA插件,再通过修改job_submit.lua脚本实现用户作业申请CPU与GPU比例超过限定时,禁止作业运行;每个GPU最多能使用的CPU个数通过式2计算得到:
用户申请每GPU可用CPU数=节点总CPU数/总GPU数 (式2)
用户申请每GPU可用CPU数=申请CPU总数/申请GPU总数 (式3)
当用户申请每GPU可用CPU数大于每GPU可用CPU数时,表示用户某作业申请的资源超过额定限制,此时禁止该作业运行。
9.如权利要求1所述云资源管理调度方法,其特征是,F中登录节点资源限制,具体通过在登录节点安装cpulimit指令,并监控登录节点的进程,用cpulimit指令控制该进程的CPU占用率。
10.如权利要求9所述云资源管理调度方法,其特征是,实时监控登录节点所有进程,当进程的CPU占用率超过70%、并且该进程的拥有者不是root用户时,通过cpulimit指令控制该进程的CPU占用率保持在50%以内。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810033927.3A CN108334409B (zh) | 2018-01-15 | 2018-01-15 | 一种细粒度的高性能云资源管理调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810033927.3A CN108334409B (zh) | 2018-01-15 | 2018-01-15 | 一种细粒度的高性能云资源管理调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108334409A true CN108334409A (zh) | 2018-07-27 |
CN108334409B CN108334409B (zh) | 2020-10-09 |
Family
ID=62924730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810033927.3A Active CN108334409B (zh) | 2018-01-15 | 2018-01-15 | 一种细粒度的高性能云资源管理调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334409B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471574A (zh) * | 2018-11-21 | 2019-03-15 | 北京百度网讯科技有限公司 | 用于配置资源的方法及装置 |
CN110750358A (zh) * | 2019-10-18 | 2020-02-04 | 上海交通大学苏州人工智能研究院 | 一种超算平台资源利用率分析方法 |
CN110795241A (zh) * | 2019-10-18 | 2020-02-14 | 北京并行科技股份有限公司 | 一种作业调度管理方法、调度中心和系统 |
CN110928686A (zh) * | 2019-11-21 | 2020-03-27 | 苏州交驰人工智能研究院有限公司 | 一种超算平台资源使用监控方法 |
CN110941491A (zh) * | 2019-11-21 | 2020-03-31 | 苏州交驰人工智能研究院有限公司 | 一种超算平台资源使用监控方法 |
CN111031022A (zh) * | 2019-12-05 | 2020-04-17 | 安徽大学 | 基于Slurm的资源管理调度方法、装置、电子设备及存储介质 |
CN112052088A (zh) * | 2020-08-31 | 2020-12-08 | 北京升鑫网络科技有限公司 | 自适应的进程cpu资源限制方法、装置、终端及存储介质 |
CN112882828A (zh) * | 2021-01-25 | 2021-06-01 | 北京大学 | 基于slurm作业调度系统的昇腾处理器管理和调度方法 |
CN114584455A (zh) * | 2022-03-04 | 2022-06-03 | 吉林大学 | 一种基于企业微信的中小型高性能集群监控系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929720A (zh) * | 2012-09-24 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种节能作业调度系统 |
CN103383653A (zh) * | 2012-05-02 | 2013-11-06 | 中国科学院计算技术研究所 | 云资源管理和调度方法及系统 |
CN103761147A (zh) * | 2014-01-15 | 2014-04-30 | 清华大学 | 一种云平台中计算实例的管理方法及系统 |
CN103309748B (zh) * | 2013-06-19 | 2015-04-29 | 上海交通大学 | 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法 |
CN105183554A (zh) * | 2015-07-31 | 2015-12-23 | 国家超级计算深圳中心(深圳云计算中心) | 高性能计算与云计算混合计算系统及其资源管理方法 |
US20160358305A1 (en) * | 2015-06-07 | 2016-12-08 | Apple Inc. | Starvation free scheduling of prioritized workloads on the gpu |
CN106600245A (zh) * | 2016-12-15 | 2017-04-26 | 国云科技股份有限公司 | 一种云计算资源调度系统及其实现方法 |
CN107239337A (zh) * | 2016-03-28 | 2017-10-10 | 北京智梵网络科技有限公司 | 虚拟化资源的分配和调度方法及系统 |
CN107239563A (zh) * | 2017-06-13 | 2017-10-10 | 成都布林特信息技术有限公司 | 舆情信息动态监控方法 |
CN107295090A (zh) * | 2017-06-30 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 一种资源调度的方法和装置 |
CN107357641A (zh) * | 2017-06-21 | 2017-11-17 | 西安电子科技大学 | 一种云计算中任务调度方法 |
-
2018
- 2018-01-15 CN CN201810033927.3A patent/CN108334409B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103383653A (zh) * | 2012-05-02 | 2013-11-06 | 中国科学院计算技术研究所 | 云资源管理和调度方法及系统 |
CN102929720A (zh) * | 2012-09-24 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种节能作业调度系统 |
CN103309748B (zh) * | 2013-06-19 | 2015-04-29 | 上海交通大学 | 云游戏中的gpu虚拟资源自适应调度宿主机系统和调度方法 |
CN103761147A (zh) * | 2014-01-15 | 2014-04-30 | 清华大学 | 一种云平台中计算实例的管理方法及系统 |
US20160358305A1 (en) * | 2015-06-07 | 2016-12-08 | Apple Inc. | Starvation free scheduling of prioritized workloads on the gpu |
CN105183554A (zh) * | 2015-07-31 | 2015-12-23 | 国家超级计算深圳中心(深圳云计算中心) | 高性能计算与云计算混合计算系统及其资源管理方法 |
CN107239337A (zh) * | 2016-03-28 | 2017-10-10 | 北京智梵网络科技有限公司 | 虚拟化资源的分配和调度方法及系统 |
CN106600245A (zh) * | 2016-12-15 | 2017-04-26 | 国云科技股份有限公司 | 一种云计算资源调度系统及其实现方法 |
CN107239563A (zh) * | 2017-06-13 | 2017-10-10 | 成都布林特信息技术有限公司 | 舆情信息动态监控方法 |
CN107357641A (zh) * | 2017-06-21 | 2017-11-17 | 西安电子科技大学 | 一种云计算中任务调度方法 |
CN107295090A (zh) * | 2017-06-30 | 2017-10-24 | 北京奇艺世纪科技有限公司 | 一种资源调度的方法和装置 |
Non-Patent Citations (4)
Title |
---|
RAVI V T , BECCHI M , AGRAWAL G , ET AL: "ValuePack: Value-based scheduling framework for CPU-GPU clusters", 《HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE AND ANALYSIS (SC), 2012 INTERNATIONAL CONFERENCE FOR 2012》 * |
ZHANG Y, ET AL: "A cloud gaming system based on user-level virtualization and its resource scheduling", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
李腾耀等: "基于动态阈值和占优资源的云资源调度方法研究", 《计算机应用研究》 * |
林伟伟等: "云计算资源调度研究综述", 《计算机科学》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109471574B (zh) * | 2018-11-21 | 2020-04-10 | 北京百度网讯科技有限公司 | 用于配置资源的方法及装置 |
CN109471574A (zh) * | 2018-11-21 | 2019-03-15 | 北京百度网讯科技有限公司 | 用于配置资源的方法及装置 |
CN110795241B (zh) * | 2019-10-18 | 2022-07-19 | 北京并行科技股份有限公司 | 一种作业调度管理方法、调度中心和系统 |
CN110750358A (zh) * | 2019-10-18 | 2020-02-04 | 上海交通大学苏州人工智能研究院 | 一种超算平台资源利用率分析方法 |
CN110795241A (zh) * | 2019-10-18 | 2020-02-14 | 北京并行科技股份有限公司 | 一种作业调度管理方法、调度中心和系统 |
CN110928686A (zh) * | 2019-11-21 | 2020-03-27 | 苏州交驰人工智能研究院有限公司 | 一种超算平台资源使用监控方法 |
CN110941491A (zh) * | 2019-11-21 | 2020-03-31 | 苏州交驰人工智能研究院有限公司 | 一种超算平台资源使用监控方法 |
CN111031022A (zh) * | 2019-12-05 | 2020-04-17 | 安徽大学 | 基于Slurm的资源管理调度方法、装置、电子设备及存储介质 |
CN112052088B (zh) * | 2020-08-31 | 2021-07-13 | 北京升鑫网络科技有限公司 | 自适应的进程cpu资源限制方法、装置、终端及存储介质 |
CN112052088A (zh) * | 2020-08-31 | 2020-12-08 | 北京升鑫网络科技有限公司 | 自适应的进程cpu资源限制方法、装置、终端及存储介质 |
CN112882828A (zh) * | 2021-01-25 | 2021-06-01 | 北京大学 | 基于slurm作业调度系统的昇腾处理器管理和调度方法 |
CN112882828B (zh) * | 2021-01-25 | 2023-09-05 | 北京大学 | 基于slurm作业调度系统的昇腾处理器管理和调度方法 |
CN114584455A (zh) * | 2022-03-04 | 2022-06-03 | 吉林大学 | 一种基于企业微信的中小型高性能集群监控系统 |
CN114584455B (zh) * | 2022-03-04 | 2023-06-30 | 吉林大学 | 一种基于企业微信的中小型高性能集群监控系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108334409B (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334409A (zh) | 一种细粒度的高性能云资源管理调度方法 | |
CN107943555B (zh) | 一种云计算环境下的大数据存储和处理平台及处理方法 | |
Cho et al. | Natjam: Design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters | |
Kc et al. | Scheduling hadoop jobs to meet deadlines | |
CN109034396B (zh) | 用于处理分布式集群中的深度学习作业的方法和装置 | |
US9262220B2 (en) | Scheduling workloads and making provision decisions of computer resources in a computing environment | |
CN108701059A (zh) | 多租户资源分配方法和系统 | |
Wang et al. | Pigeon: An effective distributed, hierarchical datacenter job scheduler | |
CN103064746A (zh) | 基于当前credit进行预测调度的处理器资源精确分配方法 | |
DE102006004839A1 (de) | System und Verfahren zum Migrieren virtueller Maschinen bei Clustersystemen | |
Zhu et al. | FPGA resource pooling in cloud computing | |
Lai et al. | Sol: Fast distributed computation over slow networks | |
CN106775493B (zh) | 一种存储控制器及io请求处理方法 | |
CN108268546A (zh) | 一种优化数据库的方法及装置 | |
Chen et al. | Preemptive and low latency datacenter scheduling via lightweight containers | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
Hirashima et al. | Proactive-reactive auto-scaling mechanism for unpredictable load change | |
CN114327894A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN107528871A (zh) | 存储系统中的数据分析 | |
Casini et al. | Addressing analysis and partitioning issues for the Waters 2019 challenge | |
US20220413941A1 (en) | Computing clusters | |
Wang et al. | Improving utilization through dynamic VM resource allocation in hybrid cloud environment | |
Boyer et al. | Pilot-job provisioning through cream computing elements on the worldwide LHC computing grid | |
US9152451B2 (en) | Method of distributing processor loading between real-time processor threads |
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 |