Slurm问题-关于节点共享队列以及配置cgroup的问题

这篇具有很好参考价值的文章主要介绍了Slurm问题-关于节点共享队列以及配置cgroup的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

节点共享使用队列问题

问题描述:分区配置允许为不同的节点组(或分区)建立不同的作业限制或访问控制。节点组可能位于多个分区中,使分区成为通用队列。例如,可以将同一组节点放到两个不同的分区中,每个分区都有不同的约束(时间限制、作业大小、允许使用分区的组等等)。作业在单个分区内分配资源。在slurm.conf中每个分区的所有参数放在一行中。每一行分区配置信息应该代表一个不同的分区。

根据官网描述,可以通过在slurm进行相应的限制,来达到节点共享使用队列,但是不会造成作业执行冲突。
  • AllocNodes

表示队列的节点列表,一个节点可以出现在多个队列中,可以使用节点范围表达式指定节点名称,默认值是”ALL“表示全部节点。

  • AllowAccounts

用逗号分隔开的账户列表,表示可以使用该分区的账户,这样就可以以账户来限制作业执行在哪个队列里,由于Linux用户与Slurm用户打通的,而slurm用户跟slurm账户是绑定的,但是Linux没有Account的概念。因此对于账户的限制只需要关注slurm中的account即可。

  • AllowGroups

用逗号分隔开组名列表,表示允许这些组在队列中执行作业。其中root用户与slurmuser用户可以在任何队列中执行作业。默认情况下,AllowGroups是不设置的,表示所有的组都可以使用队列。由于Linux中用户跟Slurm用户是打通的,因此slurm采用了Linux组限制作业运行在队列中。简言之,就是AllowGroups允许Linux组中与slurm相关联的用户来使用该队列。

  • Default

当提交到slurm的作业没有指定具体的队列时候,作业就会默认提交到默认的队列中。对应参数有两个,”YES“和”NO“,在一个集群中,只允许出现一个默认队列。

  • DefaultTime

用来未指定运行时间的作业运行时间限制,如果不设置DefaultTime,将采用集群配置的MaxTime。

  • DenyAccounts

用逗号分隔开的列表,表示哪些账号不允许使用该队列,与AllowGroup相对应。

  • DisableRootJobs

从上面可以了解到,root用户和slurmuser默认可以向任何队列提交作业,该配置项是了组织root用户在该队列运行任何作业。DisableRootJobs=YES表示阻止root用户在该分区运行作业。

  • ExclusiveUser

表示该队列下的节点都将专门非配给用户,可以给一个用户运行多个作业。但是一次只能激活一个用户。

  • Hidden

表示默认情况下是否隐藏队列以及运行在该队列上面的作业。SlurmAPI默认情况下不会报告隐藏分区。可用的参数是“ YES”和“ NO”。默认值是“ NO”。请注意,默认情况下,用户由于 AllowGroups 参数而无法访问的队列也将被隐藏。

slurm使用cgroup来解决作业指定资源与实际分配资源问题

现有的资源是以节点为粒度的资源分配,在多核心CPU中如果作业申请资源不能全部占满全部核心,就会出现资源超额分配的问题,如何将资源申请与管理的粒度细化到核心这一级。

  • 尝试的解决办法

Resource Selection:资源选择,定义作业资源(节点)选择算法----需要修改控制节点和所有计算节点的slurm.conf的选择算法
SelectType=select/cons_tres #使用cons_tres插件
** select/cons_tres: 单个的CPU核、内存、GPU及其它可追踪资源作为可消费资源(消费及分配),建议设置**
** select/cons_res: 单个的CPU核和内存作为可消费资源**
** select/cray_aries: 对于Cray系统**
** select/linear: 基于主机的作为可消费资源,不管理单个CPU等的分配**
修改slurmctld的slurm.conf配置文件之后,会出现作业能够执行,资源也能够细粒度到以核心为单位。但是在运行到33秒之后,通过squeue以及scontrol查看作业信息,作业状态会变成CG状态,且在slurmd的log日志文件中会出现下面的问题(插件找不到):
1677056989231.png
根据官网关于配置文件的翻译,以及百度到的插件机制,出现CG的原因是因为执行完作业的进程没有完全退出,导致出现作业状态变成CG,同时执行作业的节点状态变成comp状态。如果想要把节点状态由comp状态变成idle状态,需要使用scontrol update nodename=xxx state=down reason=xxx以及scontrol update nodename=xxx state=resume reason=xxx,这样节点状态就会重启了。
通过查看安装的插件位置,发现相应的插件已经通过rpmbuild编译过了,应该不是插件没有打开的问题。
1677069137896.png
查看CPU核数以及线程数
c88d88d500080884eb4ef9ef3127ac6.png
14c1e655f45dd6560f15a6b59c89496.png
另外关于重新编译的问题。可以参考:https://cloud.tencent.com/developer/ask/sof/1917449具体内容如下图所示:
image.png
最后,解决办法竟然是同步修改slurmd节点的slurm.conf文件,因为SelectType是作用在slurmd的配置项,所以需要同步修改配置文件。(不知道为什么,在计算节点公司也给安排了slurm.conf配置文件,绝了)文章来源地址https://www.toymoban.com/news/detail-501245.html

到了这里,关于Slurm问题-关于节点共享队列以及配置cgroup的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux关于memory cgroup的几个要点

    概述 本文讲述memory cgroup比较容易误解的一些逻辑,如果不太经常使用和解决问题的话,对于memory cgroup的认知会比较浅显:cgroup memory用来限制进程的内存使用,但是我们进一步想如下的问题: 进程的内存可以分很多类型,比如page cache,slab,anon memory等,到底是限制的哪些内

    2024年02月07日
    浏览(31)
  • jenkins——环境变量、节点配置以及节点环境变量的使用

    Jenkins 环境变量就是通过 env 暴露出来的全局变量,可以在 Jenkins 文件的任何位置使用 a、系统内置环境变量 BUILD_NUMBER BUILD_URL JOB_NAME GIT_URL b、用户自定义环境变量 全局环境变量入口 Dashboard - 系统管理(Manage Jenkins) - 系统配置(Configure System)- 全局属性 linux部署:$变

    2023年04月26日
    浏览(46)
  • 【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列

    目录 1、单例模式 1.1、饿汉模式 2.1、懒汉模式  2、阻塞队列 2.1、BlockingQueue 阻塞队列数据结构 对框架和设计模式的简单理解就是,这两者都是“大佬”设计出来的,让即使是一个代码写的不太好的“菜鸡程序员”也能写出还可以的代码。 设计模式也可以认为是对编程语言语

    2024年03月23日
    浏览(90)
  • Ubuntu服务器安装配置slurm (Ubuntu 22.04 LTS)

    Slurm 全称 S imple L inux U tility for R esource M anagement。通常被用于大型Linux服务器 (超算) 上,作为任务管理系统。本文详细讲述如何在 Ubuntu 22.04 LTS 上安装slurm,并进行简单的配置。 其实网上相关的教程已经非常多,但在旧版本的Ubuntu上安装slurm时,通常需要安装一个名为slurm-ll

    2024年02月07日
    浏览(74)
  • 关于CLASH在共享网络和开启TUN后,出现网络不通的问题——“listen udp :0“

    TUN开启后等于做了一次网络共享,所以在非TUN虚拟网卡开启网络共享(ICS)后,再开启TUN会引起错误。正确的做法是开启TUN后,再在TUN的虚拟网卡上开启网络共享(ICS)。 \\\"listen udp :0\\\": bind: An attempt was made to access a socket in a way forbidden by its access permissions. DRIECT i/o timeout 以上错

    2024年02月08日
    浏览(48)
  • MQ消息队列详解以及MQ重复消费问题

    https://blog.csdn.net/qq_44240587/article/details/104630567 核心的就是:解耦、异步、削锋 现有ABCDE五个系统,最初的时候BCD三个系统都要调用A系统的接口获取数据,一切都很正常,但是突然,D系统说:我不要了,你不用给我传数据了,A系统无奈,只能修改代码,将调用D系统的代码删除

    2024年04月13日
    浏览(52)
  • 关于用栈和队列分别解决走迷宫问题的方法讨论(参与者:陈卓,毛敏磊)

    对于生活中最常见的小游戏——走迷宫,相信大家都不陌生,人为走相信大家都会走,但能不能用代码实现,我们认为是可以的,以下是我们对如何走迷宫的一些看法和代码实现(cz负责队列解决,mml负责用栈解决) 先简单介绍一下 队列 :队列是一种操作受限的线性表,只

    2024年04月08日
    浏览(78)
  • docker之cgroup版本问题

    docker容器无法启动,报错 Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted · Issue #4072 · lxc/lxc Linux 5.x  及以上内核改用了  cgroup v2  版本,而容器镜像环境需要的还是  cgroup v1  版本。 同时由于  cgroup v2  和  v1  不能兼容,因此导致容器启动后,容器内相关服务无

    2024年01月24日
    浏览(35)
  • 关于nginx的linux命令 以及 基本配置文件的配置

    nginx介绍 反向代理,https,动静分离(web 服务),负载均衡 (反向代理),web 缓存 内存少,并发能力强(支持50,000 个并发) 配置文件默认是放在/usr/local/nginx/conf/nginx.conf,配置文件中默认有三大块:全局块、events块、http块。 我们主要修改http块: 反向代理 server { location

    2023年04月23日
    浏览(56)
  • 十七、Docker之Cgroup资源配置

    其实在日常的工作中,我们一般都没有对docker容器进行资源限制,也就是默认情况下,可以使用宿主机的所有资源。但是如果你运行的服务有问题,就有可能对宿主机和宿主机上的其他业务造成影响,这还是有一定的风险。那么本文会给大家介绍一下如何对容器进行资源配置

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包