今日实验室停电,服务器晚上也要关机,工作也做不了,闲着无聊就来写点服务器相关的破玩意
我想到一个好听的名字,嗯这篇短文就又称作超级无敌破玩意之我与slurm的爱恨情仇吧。Nice!!!
Slurm
它的定义网络上多的要死,不过说简单点,就是个任务提交系统,而且还是mysql为背景搭建起来的
mysql,那可真是从删库到跑路。^–^
它可以将计算节点分成很多个分区,也可以给用户给予不同权限的运算池权限。来更加有效帮助管理员
来对服务器的资源进行更加合理的调配和使用,然而越高级的东西,所需要的学习成本也就越大。
所以我们来介绍一下slurm的使用,以及一些日常的报错
点击查看详细内容,里面是魔鬼哦
slurm也可以帮助服务器拥有者对于使用者所消耗的资源进行统计,biling~~~biling~~~~slurm入门之sinfo
sinfo这个命令可能不是你最常用的命令,但是一定是你接触slurm系统第一个键入的指令
它会告诉你服务器现在的计算资源被分成几个分区,有多少个节点,哪些节点有任务提交,哪些还有空闲
第一列就代表了服务器的分区,第二列代表该分区节点可使用,第三列代表该分区内任务运行时间没有限制
第四列代表该行的节点数量,第五列代表了该节点的状况
其中drng和drain代表该节点出现了故障需要fix
alloc代表这个节点资源已被完全占用,mix代表部分被占用,idle代表完全闲置
一个sinfo的小tips,好奇的可以点开看看
1 | sinfo -o "%.15P %.5a %.10l %.6D %.6t %N" |
sinfo的一些其他指令
1 | sinfo -R #查看故障节点原因 |
对于slurm显示为drain或者drng的节点的常规修理方案
1 | scontrol update NodeName="bugnodename" State=RESUME |
slurm新手上路之提交任务sbatch
可能有人会问我为什么在这里介绍sbatch而不是srun这个命令,原因很简单,sbatch的提交文件是可以
被脚本流程化制作出来的,而srun不行,你每次使用srun的时候都需要逐个键入你需要的指令,比较繁琐
所以我这里介绍一下sbatch的输入文件抬头
1 | #SBATCH -c 10 --mem 3G # 10个cpu, 3G内存 |
从**–get-user-env** 这一行开始后续的抬头并非必要参数,可以根据个人需要
进行添加或者修改,当然如果你的slurm里面有smail组件,你也可以让slurm将任务完成信息发送到你的邮箱
远程化办公有木有,老板们有多个一个可以压榨员工的手段啊,丧尽天良有木有!!!!
当然司机上路还是需要知道基本的行为准则,点开获取行为指导书
1 | alias qs='sacctmgr show ass user=`whoami` format=user,part,qos' |
slurm马路杀手之查看任务squeue
好了,既然我们已经拿到了驾照也上了马路,那么就让我们来当一个马路杀手吧,
不过马路杀手也要经历堵车的不是吗?毕竟堵车实在是常态啊!!!
好,查看当前任务状态,一行命令搞定:
1 | squeue -u `whoami` |
打印出内容如下
啊,很不幸,你堵车了,你的燃油不够了。
最后一行代表的意思就是说你提交的任务超过了你用户所能使用的最大内存使用;
当然也有另外一个版本(QOSMaxCpuPerUser),啊,你的cpu不够了。
不过你也会也会遇到一个来自高纬度的打击(Priority),啊,你的权限不如人家,
就好比人家走的是高速,你没钱,你只能走国道,嘻嘻。
这里还有个有趣的小alias
1 | alias sq='squeue -o "%.18i %.9P %.12j %.12u %.12T %.12M %.16l %.6D %R" -u youruid' |
卷末语
今天就写到这里吧,也快到饭点了,我也该去吃饭了。
外面下着雨,实验室网也是断的,忽然觉得生活节奏都慢了下来,
或许我骨子里就喜欢这种生活节奏吧,突然觉得有些欣喜,不用为了研究僧的学习再过着两点一线的生活
不做梦了,晚上回来还要关闭服务器,真的头疼,脑袋都大了。。。。。。