SGE任务调度系统相关命令记录

http://gridscheduler.sourceforge.net/htmlman/
http://gridscheduler.sourceforge.net/htmlman/htmlman1/qstat.html?pathrev=V62u5_TAG

sge系统管理命令

队列信息查询

命令 功能
qconf -sq 查询特定队列的信息
qconf -sprjl 显示项目列表

qsub

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-V: 将当前的环境变量传递到执行命令的节点中。可以使用-v PWD 来代替-cwd
cwd: 在当前目录下执行任务, sge的日志会输出到当前路径。 不增加该指令,所有投递的任务都会在家目录下执行
-l resource=value: 请求资源数, 例如 -l vf=25G -l h=node1 就是任务的预估内存要25G(内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂), 申请在node1上运行
eg: qsub -cwd -l h=compute-12-13 run.sh
-S: /bin/bash: 表示在bash环境下执行命令。默认tcsh.
-sync y|n: 是否等待任务结束,返回退出码
-o path: 指定标准输出的文件夹
-j y|n :是否将标准输入和标准输入合并成一个文件
-a date_time 作业开始运行时间
-b y[es]|n[o]判断作业指定是二进制文件或scripts。y :是 n:scripts
-display 使用X-windows
-dl date_time 定义作业到期时间,在作业到期时间之前,作业的优先级会逐步提高,直到管理员指定的最高级别。
-e 指定输出error文件的路径及文件名
-hard 定义作业被调度的硬性要求
-h 作业hold类型。u:表示用户hold,s:表示系统hold,o:表示被操作员hold,n:取消hold
,U:取消用户hold,S:取消系统hold,O:取消操作员hold。
-i 定义输入文件
-j y[es]|n[o] 定义作业的标准错误输出是否写入的输出文件中
-l resource=value, 表明作业运行所需要的资源。
-m b|e|a|s|n 。定义邮件发送规则。b:作业开始时发送。e:作业结束时发送。a:作业失败时发送 s:作业挂起时发送。n:不发送
-M user[@host] 定义邮件地址
-notify :定义发送SIGSTOP or SIGKILL信号的延迟时间
-now y[es]|n[o]:立即执行作业
-N 作业名-o [[hostname]:]path :定义输出文件路径、文件名
-P project_name:定义项目名称
-p priority :定义优先级
-pe parallel_environment:定义并行环境
-q wc_queue_list:定义作业运行队列 (也可以进一步使用 @ 指定运行节点 eg: b2c_rd1.q@tj-compute-31-5.tj.hpc)
-R y[es]|n[o]:定义是否为作业保留资源。
-r y[es]|n[o]:定义作业失败后是否重新运行
-soft 定义作业被调度的软性要求
-u username,只有qlter命令可以使用该参数。修改作业的用户名
-v variable:定义环境变量
-verbose 使qrsh命令输出信息
-verify 验证作业参数时使用
-V 传递当前命令的所有环境变量
-clear 清除预设的环境配资,恢复为默认值

qconf

  • 队列
1
2
3
4
5
6
7
# 显示所有队列
qconf -sql
#显示一个队列的详细配置信息(包含的节点和负载等信息)
qconf -sq queue_name
#显示当前配置为执行主机的所有主机的名称列表
#添加一个队列
qconf -aq queue_name
  • 用户组
1
2
3
4
5
6
7
8
# 查看所有用户组
qconf -sul
# 查看某个用户组信息
qconf -su 用户组名
# 编辑用户组配置
qconf -mu 用户组名
# 创建用户组并把用户添加到用户组
qconf -au 用户名 用户组名
  • 其他
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<<<<<<< HEAD
qconf -sel #显示当前配置为执行主机的所有主机的名称列表
qconf -se hostname #显示指定的执行主机的详细信息
qconf -sh #显示具有管理权限的主机列表
qconf -ss #显示提交主机列表
qconf -sc #显示所配置的资源属性列表
qconf -su #显示指定项目下的用户 {project}_user
qconf -sconf #显示当前配置
qconf -aprj #添加一个新项目
qconf -sprjl #显示项目列表
qconf -aq queue_name #添加一个队列
qconf -ahgrp @host_group_name #添加主机组,hostlist中主机列表间隔用空格
qconf -mconf #编辑默认Shell【login_shells bash,sh,ksh,csh,tcsh】
qconf -aq #显示默认队列模板

qstat 显示队列和作业的状态

qstat 命令—用于查询作业状态信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
命令格式:qatat [-f][-a][-i] [-n][-s] [-R] [-Q][-q][-B][-u]
参数说明:
-f jobid 列出指定作业的信息
-a 列出系统所有作业
-i 列出不在运行的作业
-n 列出分配给此作业的结点
-s 列出队列管理员与scheduler 所提供的建议
-R 列出磁盘预留信息
-Q 操作符是destination id,指明请求的是队列状态
-q 列出队列状态,并以alternative 形式显示
-au userid 列出指定用户的所有作业
-B 列出PBS Server 信息
-r 列出所有正在运行的作业
-Qf queue 列出指定队列的信息
-u 若操作符为作业号,则列出其状态。

任务状态

1
2
3
4
5
6
qw: 表示等待状态
hqw: 任务挂起等待中,待依赖的任务完成后执行
Eqw: 投递任务出错
r: 表示任务正在运行
s: 暂时挂起
dr: 节点挂了之后,删除任务就会出现这个状态,只有节点重启之后,任务才会消失

qmod 修改队列和作业的状态

1
2
3
4
5
6
7
# 任务的挂起与恢复
qmod -sj jid (已在run的job) 或 qhold jid(qw的job)挂起
qmod -usj jid 或 qrls jid恢复之前挂起的任务
## 登陆节点任务挂起
kill -STOP pid
## 登陆节点任务恢复
kill -CONT pid
-------------本文结束感谢您的阅读-------------