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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
-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:定义作业运行队列

-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
8
9
# 任务的挂起与恢复
qmod -sj jid (已在run的job) 或 qhold jid(qw的job)挂起

qmod -usj jid 或 qrls jid恢复之前挂起的任务

## 登陆节点任务挂起
kill -STOP pid
## 登陆节点任务恢复
kill -CONT pid
-------------本文结束感谢您的阅读-------------