一、作业调度系统的概述:
主要负责接收用户提交的作业请求,并根据特点的调度规则以及用户对作业的要求选择合适的计算资源来完成用户作业。
sge作业调度系统主要有以下四部分组成:
节点:一台或多台主机
后台程序:主要是sge的守护进程,包括master和exced
队列:逻辑上把一台或者多台主机组成一个资源池
用户命令:提供用户提交、查看、修改作业的接口
二、sge调度策略
1.先来先服务:按作业到达的先后次序调度
2.优先级调度:根据作业的优先级,优先级高的先调度(如果是数字,则数值越大优先级越高)
调度策略原则:进程调度决定就绪队列中哪个进程将获得处理机,并实际执行将处理机分配给该进程的操作。进程调度是操作系统中最基本的调度,在批处理及分时系统中都必须配置。
三、工作原理
sge把主机分为不同的角色:
主控主机(master host)、执行主机(execution host)、管理主机(administraive host)、提交主机(submit host)
四、sge的工作流程及命令介绍
1.准备工作
- qsub命令
vim test.qusb #!/bin/bash #$ -V #push当前的环境变量 #$ -cwd #作业输出放在当前目录 #$ -S /bin/bash #指定使用的shell类型 #$ -P qd #项目名 #$ -q m.q #队列名 #$ -N name #作业的显示名 #$ -l virtual_free=100M,num_proc=2 #资源申请 sleep 120 echo "this is a test" >>test.out
使用qsub命令提交作业:qsub -cwd -l vf=1G,p=0 test.qsub
2.删除作业
qdel job-id
2.查看作业状态
qstat -j job-id 查看指定作业状态及具体的报错信息
介绍以下几种状态:
r 正在运行
s 作业停止
dr 作业删除后的一种过度状态
qw 排队等待
hqw 排队等待挂起
Eqw 作业出错终止
qstat -f 查看队列节点状态
介绍以下几种状态:
a 负载超限
A 负载超限
E 队列出错,不能提供任务提交服务了
d 队列主机禁用
au 主机和sge服务连接中断,此时负载状态为-NA-,需要重启相关服务器的sge进程。
u 未知状态
3.节点、队列、用户等配置命令
主机分为管理主机、执行主机、提交主机
qconf -sh 显示管理主机
qconf -ah 主机名 添加管理主机
qconf -mh 主机名 修改管理主机
qconf -sel 显示执行主机
qconf -ae 主机名 添加执行主机
qconf -me 主机名 修改执行主机
qconf -ss 显示提交主机
qconf -as 主机名 添加提交主机
qconf -ms 主机名 修改提交主机
主机组操作:
qconf -shgrpl 查看主机组
qconf -shgrp 主机组 查看某一主机组信息
qconf -ahgrp 主机组 添加主机组
qconf -mhgrp 主机组 修改某一主机组
管理用户和操作用户命令
qconf -sm 显示系统管理人员列表
qconf -am 添加管理人员
qconf -dm 删除管理人员
qconf -so 显示操作人员列表
qconf -ao 添加操作人员
qconf -do 删除操作人员
用户配置命令
qconf -sul 查看所有用户组
qconf -su 用户组 查看用户组信息
qconf -au 用户名 用户组 向用户组中添加一个或多个用户
qconf -mu 用户组 修改用户组信息
qconf -du 用户名 用户组 把一个或多个用户从用户组中删除
qconf -dul 用户组 删除用户组
队列配置命令
qconf -sql 查看所有队列
qconf -sq 队列名 查看某一队列名信息
qconf -aq 队列名 添加队列 (通过hostlist与节点创建联系,user_list与用户组及用户创建联系)
qconf -mq 队列名 修改队列
qconf -dq 队列名 删除队列
查看用户可用队列及节点:qselect -U 用户名
查看队列可用节点:qselect -q 队列名