slurm深度解析:探索作业调度系统的架构和术语,Flutter全方位深入探索

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
img

正文

作业记账:slurm可以通过数据库或文件的方式记录作业的历史数据,以便进行作业的分析和统计。


二、slurm的架构和术语

slurm的架构主要由以下几个组件构成:

slurmctld:slurm的中心管理器,负责监测集群的资源和作业,以及进行作业的调度和分配。为了提高可用性,还可以配置一个备份的slurmctld。

slurmd:slurm的节点守护进程,运行在每个计算节点上,负责执行作业,以及向slurmctld汇报节点和作业的状态。

slurmdbd:slurm的数据库守护进程,负责存储和管理作业的记账信息,以及提供查询和统计的接口。slurmdbd是可选的,也可以将记账信息存储在文件中。

slurmrestd:slurm的REST API守护进程,提供了一种通过REST API与slurm进行交互的方式,可以实现slurm的所有功能。slurmrestd是可选的,也可以通过命令行工具与slurm进行交互。

用户工具:slurm提供了一系列的用户工具,用于查看集群和作业的状态,提交和管理作业,以及进行其他的操作。常用的用户工具有srun、sbatch、salloc、squeue、sinfo、scancel、sacct等。

管理工具:slurm提供了一系列的管理工具,用于监控和修改集群和作业的配置和状态,以及进行其他的管理操作。常用的管理工具有scontrol、sview、sacctmgr等。

slurm的术语主要包括以下几个概念:

节点(Node):slurm管理的计算单元,可以是一台物理机或一台虚拟机,具有一定数量的CPU、内存、磁盘等资源。节点可以分为以下几种类型:

头节点(Head Node):运行slurmctld的节点,也称为管理节点或控制节点。 
计算节点(Compute Node):运行作业的节点,也称为工作节点或执行节点,需要运行slurmd。 
登录节点(Login Node):用户登录的节点,也称为前端节点或接入节点,可以运行slurmd,也可以不运行。 
数据库节点(Database Node):运行slurmdbd的节点,也称为记账节点,可以是独立的节点,也可以和其他节点共用。 

作业(Job):slurm管理的计算任务,由用户提交,由slurm调度和执行。一个作业可以包含一个或多个作业步(Job Step),每个作业步可以是一个或多个并行的进程。作业可以有以下几种状态:

排队(Pending):作业已提交,但还未分配资源,等待调度。 
运行(Running):作业已分配资源,正在执行。 
完成(Completed):作业已正常结束,释放资源。 
取消(Cancelled):作业被用户或管理员取消,释放资源。 
失败(Failed):作业由于错误或超时而终止,释放资源。 
挂起(Suspended):作业被暂停,保留资源。 

队列(Partition):slurm对节点和作业进行分组管理的方式,也称为分区。每个队列可以设置一些属性,如节点列表、作业大小、作业时长、用户列表等,以实现不同的资源分配策略。作业提交时需要指定一个或多个队列,slurm会根据队列的属性和优先级进行作业的调度和分配。

通用资源(GRES):slurm对节点上除CPU和内存外的其他资源进行管理的方式,如GPU、FPGA等。每个节点可以设置一定数量的GRES,每个作业可以请求一定数量的GRES,slurm会根据GRES的需求和可用性进行作业的调度和分配。

可追踪资源(TRES):slurm对节点和作业的资源使用进行追踪和记账的方式,如CPU、内存、磁盘、能耗等。每个节点可以设置一定数量的TRES,每个作业可以请求一定数量的TRES,slurm会根据TRES的使用情况进行作业的记账和统计。

服务质量(QOS):slurm对作业进行优先级管理的方式,也称为优先级。每个作业可以设置一个或多个QOS,slurm会根据QOS的属性和权重进行作业的优先级计算,以实现不同的作业调度策略。

关联(Association):slurm对用户、账户、队列等进行关联管理的方式,也称为用户组。每个关联可以设置一些属性,如QOS、TRES限制、作业限制等,以实现不同的资源控制策略。


三、slurm的基本使用

slurm的基本使用主要涉及以下几个方面:

1.查看集群和作业状态 slurm提供了一些工具,可以让用户查看集群的节点、队列、资源和作业的状态,以便选择合适的参数和时机提交作业。常用的工具有:

sinfo:显示集群的节点和队列的状态,包括节点的名称、状态、分区、CPU数、内存、GRES等信息,以及分区的名称、状态、优先级、时间限制等信息。sinfo命令可以使用一些选项,如-N显示节点级别的信息,-l显示长格式的信息,-p指定分区,-o指定输出格式等。 
squeue:显示集群的作业和作业步的状态,包括作业的ID、名称、用户、状态、分区、节点数、CPU数、内存、提交时间、开始时间、结束时间等信息。squeue命令可以使用一些选项,如-u指定用户,-p指定分区,-j指定作业ID,-o指定输出格式等。 
sacct:显示集群的作业和作业步的记账信息,包括作业的ID、名称、用户、状态、分区、节点数、CPU数、内存、提交时间、开始时间、结束时间、运行时间、能耗、优先级等信息。sacct命令可以使用一些选项,如-u指定用户,-p指定分区,-j指定作业ID,-S指定开始时间,-E指定结束时间,-o指定输出格式等。 

2.提交和管理作业 slurm提供了一些工具,可以让用户提交和管理作业,包括交互式作业、批处理作业和实时分配作业。常用的工具有:

srun:提交交互式作业,即在命令行中直接执行一个或多个并行任务,需要指定一些参数,如-n指定任务数,-N指定节点数,-p指定分区,--gres指定GRES,--mem指定内存等。srun命令会在资源分配后立即执行任务,并在任务结束后返回命令行。srun命令也可以在批处理作业脚本中使用,用于启动作业步。 
sbatch:提交批处理作业,即通过一个作业脚本来执行一个或多个并行任务,需要指定作业脚本的文件名,以及一些可选的参数,如-n指定任务数,-N指定节点数,-p指定分区,--gres指定GRES,--mem指定内存等。sbatch命令会在资源分配后在首个节点上执行作业脚本,并在作业结束后返回命令行。作业脚本中可以使用#SBATCH指令来设置一些作业参数,也可以使用srun命令来启动作业步。 
salloc:提交实时分配作业,即通过一个命令来分配一些资源,并在资源分配后在命令行中执行一个或多个并行任务,需要指定一些参数,如-n指定任务数,-N指定节点数,-p指定分区,--gres指定GRES,--mem指定内存等。salloc命令会在资源分配后返回一个新的命令行,用户可以在这个命令行中使用srun命令来执行任务,并在任务结束后退出命令行。salloc命令适合于需要指定运行节点和其他资源限制,并有特定命令的作业。 
scancel:取消作业或作业步,需要指定作业或作业步的ID,或者一些过滤条件,如-u指定用户,-p指定分区,-n指定节点等。scancel命令可以用于终止排队或运行中的作业或作业步,也可以用于发送任意信号到作业或作业步中的所有进程。 

3.使用数组作业和依赖作业 slurm提供了一些功能,可以让用户提交和管理数组作业和依赖作业。数组作业是指一种由多个相似的子作业组成的作业,每个子作业都有一个唯一的索引号,可以用于区分不同的输入或输出。依赖作业是指一种由多个相互依赖的作业组成的作业,每个作业都有一个或多个前置条件,只有当前置条件满足时,才能开始运行。常用的功能有:

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中…(img-pTgHeXk8-1713174351837)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值