SGE作业调度系统的简单理解

Sun网格引擎(Sun Grid, SGE)是一种来自于 SUN Microsystem的分布式资源管理和调度系统,它用来在基于UNIX的计算环境中优化软件和硬件资源的使用。SGE能用于查找资源池内的闲置资源并利用这些资源(将用户投递的任务进行排队,然后将任务交给能够运行的结算节点执行);它同样用于通常的一些事务中,例如管理和调度作业到可用资源中。当然,作业调度系统的种类有很多,除了SEG,常见的还有Condor、负载共享设施(LSF)、便携式批处理系统(PBS)。

对用户而言,SGE就是一个大系统,提供单个切入点,以访问强大而分散的资源。用户将网格视作单个计算资源。资源管理软件(SGE)接受由用户提交的作业(也就是分析任务),并根据资源管理策略将作业安排在网格内适当的系统上执行。用户可以一次提交数千个作业,而不必考虑他们在何处运行,如此一来简化了用户的使用。

对管理者而言,SGE依据管理者制定的规则,检测网格的所有可用资源后,聚集资源,并在该网格内自动、最优地分配和利用资源。同时提供广泛的工具,用以监控投放的任务。

SGE的工作流程可以分为四步:

  • 接受用户投放的任务
  • 在任务运行以前,将任务放到一个存储区域
  • 发送任务到一个执行设备,并监控任务的运行
  • 运行结束返回结果并记录运行日志
    用户可以在提交作业时描述出作业需求的概况,从而协助SGE的资源分配(例如,通过qsub -l申请资源)。此外,SGE系统也会检索用户的身份以及他与项目或用户组的从属关系,根据管理者的设定规则为任务分配优先级或等待时间。

1.节点的基本概念

猫毛的理解:一个节点也就相当于一台服务器

主控节点:主控节点是所有集群活动的中心,控制SGE系统组件。一般情况,主控节点也是管理节点和提交节点。
执行节点:执行节点有权限执行作业的系统,执行节点有附加到它上面的队列。
管理节点:管理节点有权运行SGE系统的任何类型的管理操作。
提交节点:提交节点只允许用户提交和控制批处理作业。具体说,用户登陆后,可以使用qsub命令提交作业,使用qstat命令监控作业状态。

了解队列的概念

在SGE中,队列就是存放能在某一节点上运行的所有任务的容器。一个队列从某种方面也决定了所含任务的属性。

队列存在的本质:为任务提供服务
队列存在的意义:(由于SGE允许同时运行多个任务,为了优化资源利用)系统会试着最小负荷的合适队列开始新的任务

2.用户的基本概念

管理人员:管理人员拥有完全操作SGE系统的能力。默认情况,管理主机的超级用户都具有管理人员权限。
操作员:操作员可以执行很多管理人员命令,但是进行配置更改除外。
拥有者:队列拥有者可以暂停或者启动其拥有的队列,还可以暂停或启动其拥有的队列中的作业。队列拥有者没有其他管理权限。
用户:用户有一定的访问权限。

3.资源检索

3.1 qhost -- 显示执行节点的状态信息

qhost查看执行节点的状态信息

其中:

  • ARCH:CPU架构
  • NCPU:CPU核数
  • LOAD:负载情况

3.2 qconf -- 提供集群配置和队列配置的用户界面

qconf -sel 显示“执行主机”列表
qconf -sh 显示“管理主机”列表
qconf -ss 显示“提交任务主机”列表
qconf -sql 显示“集群队列”列表
qconf -spl 显示“集群并行环境”列表

4. 任务投递

使用qsub进行任务投递时需要添加参数来调整qsub的行为。下面只列几个常用的参数。

参数 默认值 说明
-b 表示运行二进制命令,而非脚本
-cwd 家目录 运行前切换至当前目录。如此一来,stdout 和 stderr 将输出在当前目录
-wd 定义工作目录
-A 当前用户 任务的拥有者
-j n(默认否定) 是否将标准输入和标准输出合并成一个文件
-m 任务结束后,通过哪种方式通知任务拥有者:‘b’ Mail is sent at the beginning of the job; 'e' Mail is sent at the end of the job; 'a' Mail is sent when the job is aborted or rescheduled; 's' Mail is sent when the job is suspended; 'n' No mail is sent.(job开始和终止发送邮件,使用 -m be这种形式)
-M -m 邮件通知时的邮箱
-p 任务的优先级
-r 当操作系统重启后,自动重启任务
-N 任务名
-o stdout 指定标准输出的文件夹
-e stderr 指定标准错误的文件夹
-v 开始任务前设置指定变量
-V 将当前的环境变量传递到执行命令的节点中
-hold_jid eg: -hold_jid 135 在job ID 为135 的任务完成之后运行
-q 指定队列
-l resource=value 请求资源数 eg:-l vf=25G -l h=node1(任务的预估内存为25G,申请在node1上运行)申请内存时尽可能大于真实内存,内存预估偏低的话可能会导致节点跑挂掉
-pe smp eg:-pe smp 5 申请5个线程
-S tcsh 规定作业的shell解释器 -S /bin/bash表示在bash环境下执行命令
4.1 命令行投递
bowtie2 -p 8 -x index/ref -1 data/A_1.fq -2 data/A_2.fq | samtools sort > A.bam | qsub -V -cwd -l vf=25G -S /bin/bash -pe openmpi 8 -N A.bt2

任务解释:使用bowtieA_1.fqA_2.fq和参考基因组比对生成bam文件,然后再使用samtools sort将bam排序获得A.bam
qsub命令解释:申请8个线程并使用openmpi进行运算(同时申请内存25G),这里定义任务名称为 A.bt2

4.2 脚本投递

编辑shell脚本 test.sh,内容如下

#!/bin/bash
#$ -V
#$ -N A.bt2
#$ -pe openmpi 8
#$ -cwd
#$ -l vf=25G
#$ -M xxx@XXX.com
#$ -m be
bowtie2 -p 8 -x index/ref -1 data/A_1.fq -2 data/A_2.fq | samtools sort > A.bam

投递时直接qsub test.sh

5.任务查询 qstat

qstat是一个非常有用的任务查询命令

qstat 查询任务状态

  • prior 代表任务的优先级,数值越高越优先
  • name 为任务名称(这里为test)
  • slots ja-task-ID 线程数(这里为 1 )
  • state 为任务状态
    -- qw: 表示等待状态
    -- hqw: 任务挂起等待中,依赖于其他正在执行的任务,待依赖的任务完成后执行
    -- Eqw: 投递任务出错
    -- r:表示任务正在运行
    -- s:暂时挂起(往往由于优先级更高的job抢占了资源)
    -- dr:节点挂了之后,删除任务就会出现这个状态,只有节点重启之后,任务才会消失
    认识几个qstat的常用参数
  • qstat -f 查看用户任务
  • qstat -j jobId 按任务id查看
  • qstat -explain a|c|A|E -j jobID 查看任务并给出解释
  • qstat -u user 查看指定用户投递的任务

6. 其余几个SGE 常用命令

6.1查看可用节点 qselect

qselect 的语法:qselect [options]
常用参数:
qselect -U 查看指定用户的可用队列节点
qselect -q 查看指定队列有哪些可用节点

6.2 挂起作业使用的命令

6.2.1 qholdqrls
  • qhold 阻止已提交作业的执行
    qhold 的语法:qhold jobid
    任务挂起后,状态变为 hqw(任务挂起等待中,待依赖的任务完成后执行)
    qhold + jobid
任务被挂起
  • qrls 释放先前被阻止执行的作业
    qrls 的语法:qrls jobid
    qrls+jobid

    任务重新运行
6.2.2 qmod -sqmod -us
  • qmod -s 暂停已经在运行的作业
    qmod -s的语法:qmod -s jobid
    任务挂起后,状态变为 s(暂时挂起)

    qmod -s + jobid

    任务暂停

  • qmod -us 启动暂停的作业
    qmod -us的语法:qmod -us jobid

    qmod -us + jobid

    启动暂停的作业

attention: qmod -sqmod -us还可以用于暂停和启动队列,
前提是拥有对应的队列管理权限。

6.3 修改作业属性 qalter

qalter 语法:qalter [参数] 修改内容 jobid
常用参数:
-q :修改指定队列
-l :修改限制资源
-N :修改指定作业名称
-P :修改指定项目名称
这里以修改指定作业名称 qalter -N 举例吧:

目前的作业运行状态

修改jobid204065的作业
qalter -N

修改后的结果:
qalter -N RESULT 204065

6.4 删除作业 qdel

qdel常用的参数:
-f 强制删除
-u 删除指定用户的作业

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容

  • 我用的一个服务器上装了一个集群管理工具(SGE, Sun Grid Engine), 用于从登陆节点上向计算节点进...
    xuzhougeng阅读 26,984评论 11 35
  • 目的这篇教程从用户的角度出发,全面地介绍了Hadoop Map/Reduce框架的各个方面。先决条件请先确认Had...
    SeanC52111阅读 1,721评论 0 1
  • Apache YARN(Yet Another Resource Negotiator)是一个Hadoop集群资源...
    单行线的旋律阅读 2,781评论 0 11
  • 分布式管理系统使用笔记 有幸在工作中体验了几个计算集群的使用,几乎每个计算集群都有专门的集群调度系统,而当需要在短...
    dongye_3377阅读 2,896评论 2 3
  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 8,984评论 0 13