sge 经常使用命令

网格计算和SGE
概念上讲,网格很简单。它是执行任务的计算资源的集合。对用户而言,它就是一个大系统,提供单个切入点,以访问强大而分散的资源。用户将网格视做单个计算 资源
SGE的工做原理
Sun Grid Engine 软件为用户提供了向 Sun Grid Engine 系统提交要求计算的任务的方法,以透明地分配相关的工做负荷。用户能够向 Sun Grid Engine 系统提交批处理做业、交互式做业和并行做业。
Sun Grid Engine 用如下方式调解可用资源和做业需求。
经过 Sun Grid Engine 系统提交做业的用户描述出做业需求的概况。此外,系统还要检索用户的身份以及他或她与项目或用户组的从属关系。用户提交做业的时间也将存储起来。
SGE的组成
节点( Hosts
后台程序( Daemons
sge_qmaster the Master Daemon
sge_schedd the Scheduler Daemon
sge_execd the Execution Daemon
sge_commd the Communication Daemon
队列( Queues

经常使用命令
qsub 命令用来向 SGE 提交批处理做业, SGE 支持单或多节点做业。
qsh 命令用来提交带 xterm 交互式做业,在执行主机上开启 X-windows.
qlogin 命令与 qsh 类似也是提交交互式做业到队列中,只是它不开启 X-windows ,而是利用如今的终端传送 I/O ,该命令与远程主机创建 telnet 链接,使用标准的 server-client 命令
qrsh 命令与 qlogin 相似,与远程主机经过 rsh 链接。
qalter 可用来改变处于 pending 状态的做业属性。
qresub 命令容许用户经过拷贝处于 pengding runing 状态的做业来建立新的做业。新建做业与原做业具备相同的属性,并被分配了新的 job ID hold 状态。该命令可用来先拷贝一个做业再修改其属性。
qdel  删除任务
qmod  修改队列和任务属性
qstat        查看任务和队列状态
qacct 此命令从群集日志文件中抽取任意账户信息。
qmon 此命令为群集和队列配置提供用户界面。
qdel 用户、操做人员或管理人员可以使用此命令向做业或其子集发送信号。
qhold 此命令阻止已提交做业的执行。
qhost 此命令显示 Sun Grid Engine 执行主机的状态信息。
qconf 管理队列
qsub经常使用选项
-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 定义输入文件
-V 可使用。 可使用 -v PWD 来代替 -cwd
-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 传递当前命令的全部环境变量

qconf经常使用选项算法

% qconf ¨Csql ¨C 显示队列列表
% qconf -sq 队列名 ¨C 显示该队列属性
qname 所请求的队列名称。
hostname 队列所处的主机。
processors 多处理器系统中此队列有权访问的处理器。
qtype 容许在此队列中运行的做业类型。目前包括批处理做业、交互式做业、点检查做业、并行做业或它们的任意组合或相互转换的做业。
slots 可在队列上同时执行的做业数量。
察看队列属性
owner_list 队列的拥有者。
user_lists 此参数下所列的用户访问列表中标识的用户或组有权访问此队列。
xuser_lists 此参数下所列的用户访问列表中标识的用户或组无权访问此队列。
complex_list 列于此参数下的属性组与队列相关联,并且这些属性组中所含的属性构成此队列的可请求属性组。
complex_values 提供给此队列的某些属性组属性的赋值。
察看主控主机
因为主控主机会随时可能在当前的主控主机和某个影像主控主机之间切换,主控主机的位置对用户来讲应该是透明的。
用文本编辑器,打开
/opt/grid-engineer/default/common/act_qmaster 文件。
此文件中有当前主控主机的名称。
显示执行主机
% qconf ¨Csel
显示当前配置为执行主机的全部主机的列表。
% qconf -se 主机名称
显示指定的执行主机的详细信息
% qhost
显示执行主机的状态和负荷信息
显示管理主机
% qconf -sh
显示有管理权限的主机列表
显示提交主机
% qconf -ss
可请求的属性
交一个 Sun Grid Engine 做业时,可指定该做业的需求概况。用户能够指定做业所需的主机或队列的属性或特性以保证做业成功运行。 Sun Grid Engine 将这些做业需求映射到 Sun Grid Engine 群集的主机和队列的配置,从而找到适合该做业的主机。
可用的属性包括队列特性列表、全局属性和主机相关属性的列表,以及管理员定义的属性。可是,为方便起见, Sun Grid Engine 管理员一般只将一个全部可用属性的子集定义为可请求。
显示可请求属性列表
% qconf scl
显示已配置的属性组列表
属性组包含一组属性的定义。有三种标准属性组:
global 针对群集全局属性(可选)
host 针对主机特有的属性
queue 针对队列特性的属性
显示可请求属性列表
% qconf -sc 属性组名称 [,...]
显示某个特定属性组的属性
名称一栏中的显示与 qconf -sq 命令显示的第一栏基本相同
缩写名一栏包含可由管理员定义的第一栏中全名的缩写
能否请求一栏代表是否可将相应的项用于 qsub
关系栏定义关系运算以用于计算队列是否知足用户请求
能否使用栏和缺省值栏对管理员极其有用,管理员能够用它们声明 可以使用资源 ,。用户能够像请求其它属性同样请求可以使用资源
用户访问权限
得到当前配置的 ACL 列表
% qconf -sul
显示一个或多个访问列表中的项
% qconf -su ACL 名称 [,...]
注: ACL 包含用户账户名和 UNIX 组名, UNIX 组名用前缀“ @ ”标识出来。这样便可肯定您的账户所属的 ACL

从命令行运行简单做业

执行任何 Sun Grid Engine 命令以前,必须设置适当的可执行搜索路径和其它环境条件。
% qsub /opt/grid-engineer/examples/jobs/simple.sh
qsub 命令应确认做业已成功提交:您的做业 1 ("simple.sh") 已提交
% qstat 命令检索做业的状态信息
qstat 命令没有产生输出,则系统实际上无已知做业。结果: simple.sh.o1 simple.sh.e1
提交批处理做业
Shell 脚本即批处理做业,主要指集成到一个文件中的一系列命令行指令。 chmod 命令可以使脚本文件变成可执行文件。一旦调用脚本,便可启动相应的命令解释器(例 如, csh tcsh sh ksh ),解释每条指令,其结果等同于执行脚本的用户手动输入这些指令。您能够在一个 shell 脚本内调用任意命令、应用程序和其它 shell 脚本。


资源需求定义
实际上要执行主机成功完成做业,大部分做业要求一些先决条件。这些先决条件包括足够的可用内存、安装所需软件或某种操做系统体系结构。并且,群集管理者也常常对群集中的机器加上一些使用限制。例如,做业可以使用的 CPU 时间就经常受到限制。
资源需求示例
% qsub -l arch=solaris64,h_vmem=750M,permas=1 \
permas.sh
要求至少有 750 MB 内存的 solaris64 主机,且该主机要有可用的 permas 许可证。
SGE 如何分配资源
资源分配算法
1. 读入并分析全部缺省的请求文件。
2. 处理脚本文件的内嵌选项。
3. 提交做业时读取全部脚本的内嵌选项,而不考虑其在脚本文件中的位置。
4. 从命令行读取和分析全部请求。
SGE 如何分配资源
评估请求优先顺序
1. 脚本 / 缺省请求文件从左到右
2. 脚本 / 缺省请求文件从上到下
3. 命令行从左到右
SGE 如何分配资源
评估请求优先顺序
1. 脚本 / 缺省请求文件从左到右
2. 脚本 / 缺省请求文件从上到下
3. 命令行从左到右

SGE如何分配资源
分配所请求的硬性资源。若请求无效,将拒绝提交。若提交时没法知足一个或多个请求(例如被请求的队列正忙),做业将假脱机,稍后从新调度。若全部硬性请求都能知足,将分配这些资源,做业能够运行。
检查所请求的软性资源。即便部分或所有请求没法知足,做业仍可运行。若多个队列(已知足硬性资源请求)提供了部分软性资源列表(重叠或不一样), Sun GridEngine 软件将选择知足最多软性请求的队列。
提交做业


做业优先级
于不一样做业的调度过程顺序,缺省状况下应用先进先出 (fifo) 规则。全部暂挂(还没有调度)做业均插入到一个列表中,第一个提交的做业在列表的头部,接下来是第二项提交的做业,等等。首先尝试调度先提交的做业。若至少 有一个可用的合适队列,则做业将获得调度。 Sun Grid Engine 软件此后将试图调度第二项做业,而不论第一项做业是否已分配。暂挂做业中的此优先顺序可经过由群集管理员分配给做业的优先级值覆盖。实际的优先级值可经过 使用 qstat 命令显示(优先级值包含在标题为 P 的暂挂做业显示的最后一栏)
等份额调度
fifo 规则有时会致使问题,尤为是若用户试图同时提交一系列做业的状况下(例如,经过 shell 脚本发出一个接一个的提交)。全部后来提交的和指定到同一组队列的做业均不得不等待很长的时间。等份额调度将已拥有运行做业的用户的做业排列在优先级列表 的结尾,从而避免了这一问题。排序仅在同一优先级值范围的做业中执行。若 Sun Grid Engine 调度程序配置项 user_sort 设置为 TRUE (请参考 sched_conf 手册页以得到细节),激活等份额调度。
队列选择
Sun Grid Engine 系统不分配请求非特定队列的做业,若是它们不能即时启动的话。此类做业将在 sge_qmaster 中标记为假脱机,该命令会不时尝试从新调度它们。因而,做业将分配给下一个可用的合适队列。与此相反,在请求中指明队列名的做业将直接进入该队列,不管它 们是否能启动者处于假脱机状态。
若做业被调度,而且有多个空闲队列知足其资源请求,则在合适的队列中,一般做业将被分配给负荷最轻的主机上的队列。 群集管理者可将此依赖于负荷的方案更改成固定的顺序算法。


监视和控制SGE做业
原则上,有三种方法可监视提交的做业。
使用 Sun Grid Engine 图形用户界面 QMON
在命令行使用 qstat 命令
经过电子邮件
qstat 监视做业
% qstat
提供已提交做业的概述
% qstat -f
另外包含了有关当前配置队列的信息
qstat
job-ID        prior        name        user        state    submit/start at        queue        function
231                0        hydra        craig        r        07/13/96 20:27:15        durin.q        MASTER
232         0        compile penny         r         07/13/96 20:30:40  durin.q    MASTER
230                0        blackhole don         r         07/13/96 20:26:10  dwain.q   MASTER
233                0        mac          elaine          r         07/13/96 20:30:40  dwain.q   MASTER
234                0         golf                shannon r        07/13/96 20:31:44  dwain.q   MASTER
236                5         word        elaine         qw        07/13/96 20:32:07
235                0        andrun         penny         qw         07/13/96 20:31:43
注: state 栏包含的单个字符代码含义以下: r 表示正运行,
s 表示已暂停, q 表示已排队, w 表示在等待
qstat -f
queuename        qtype        used/free        load_avg        arch        states
dq                        BIP                0/1                        99.99                sun4        au
durin.q                BIP                2/2                        0.36                sun4
231        0         hydra craig         r         07/13/96 20:27:15                     MASTER
232                         0         compile                 penny         r         07/13/96 20:30:40                 MASTER
dwain.q                         BIP                         3/3                                 0.36                          sun4
230                         0         blackhole         don                 r         07/13/96 20:26:10                 MASTER
233                         0         mac                         elaine         r         07/13/96 20:30:40                 MASTER
234                         0         golf                         shannon         r         07/13/96 20:31:44                 MASTER
fq                                         BIP                         0/3                                 0.36                         sun4
####################################################
- PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS - PENDING JOBS -
####################################################
236                         5         word                 elaine         qw         07/13/96 20:32:07
235                         0         andrun                 penny         qw         07/13/96 20:31:43

命令行控制做业
可使用 qdel 命令取消 Sun Grid Engine 做业,不管它们是正在运行仍是处于假脱机状态。 qmod 命令能够暂停和取消暂停(恢复)已经在运行的做业。
使用这两个命令都须要知道做业标识号,此标识号可由 qsub 命令获得。若忘了标识号,可经过 qstat 检索。
% qdel 做业 ID
% qdel -f 做业 ID 1, 做业 ID 2
% qmod -s 做业 ID
% qmod -us -f 做业 ID 1, 做业 ID 2
% qmod -s 做业 ID. 任务 ID 范围
qmod 控制队列
% qmod -s 队列名
% qmod -us -f 队列名 1 、队列名 2
% qmod -d 队列名
% qmod -e 队列名 1 、队列名 2 、队列名 3
注意:注意– 暂停 / 取消暂停和禁用 / 启用队列都须要拥有者、 Sun Grid Engine 管理人员或操做人员权限
SGE 的管理
控主机 ¨C 主控主机是一切群集活动的中心。它运行主控守护程序 sge_qmaster sge_qmaster 控制全部的 Sun Grid Engine 组件(如队列和做业),并维护关于组件状态和用户访问权限之类的表单。主控主机一般运行 SGE 调度程序 sge_schedd 。除了在安装过程当中执行的配置 外,主控主机不须要进一步配置。
执行主机 ¨C 执行主机是有权执行 Sun Grid Engine 做业的节点。所以,该主机上有 Sun Grid Engine 队列,并运行 Sun Grid Engine 执行守护程序 sge_execd
管理主机 ¨C 可为主控主机之外的其它主机赋予权限,以在 Sun Grid Engine 中完成任何种类的管理活动。管理主机可用如下命令设置: qconf -ah 主机名
交主机 ¨C 提交主机仅容许提交和控制批处理做业。尤为是登陆到提交主机的用户可经过 qsub 提交做业,可经过 qstat 或运行 Sun Grid Engine OSF/1Motif 图形用户界面 QMON 控制做业状态。提交主机可用如下命令设置: qconf -as 主机名


常见错误处理
sql

sge_qmaster 日志文件:
/opt/gridengineer//default/spool/qmast/message
qstat -j < 做业 ID>
qalter -w v < 做业 ID>

问题– 做业的输出文件显示: Warning: no access to tty; thus no job control in this shell...
可能缘由 1 一个或多个登陆文件包含了 stty 命令。这些命令仅在存在终端时有用。
可能缘由 2 脚本错误。
可能的解决方案 1 Sun Grid Engine 5.3 (企业版)批处理做业中,没有与这些做业关联的终端。您必须从登陆文件中删除全部 stty 命令,或者用一条在处理前检查终端的 if 语句把它们括起来。
可能的解决方案 2 添加“ #$ -S /bin/sh”
常见错误处理
问题– 您能够从命令行运行做业脚本,但经过 qsub 命令运行时失败。
可能缘由 1 可能对做业设置了进程限制。要测试这一点,写出执行 limit limit -h 功能的测试脚本。分别在 shell 提示下和经过 qsub 命令交互执行两个脚本,比较结果。
可能缘由 2 系统同步未完成
可能的解决方案 1 确保将配置文件中用于在 shell 中设置限制的全部命令删除。
可能的解决方案 2 rocks-user cluster-fork 411get –all , 做同步。
常见问题处理
问题 ¨C 执行主机报告负荷为 99.99
能缘由 ¨C 有三种可能。
1. execd 守护程序未在主机上运行。
2. 未正确指定缺省域。
3. qmaster 主机所见的执行主机名与执行主机自身所见不一样。
可能的解决方案 ¨C
1. 做为 root 用户,在执行主机上经过运行 $SGE_ROOT/default/common/rcsge 脚原本启动 execd 守护程序。
2. 做为 Sun Grid Engine (企业版)管理员,运行 qconf -mconf 命令并将 default_domain 变量更改成 none
3. 若您正使用 DNS 解析运算群集的主机名,则请配置 /etc/hosts NIS 以返回彻底合格的域名 (FQDN) 做为主要主机名。
常见错误处理
报告做业或队列处于错误状态 E
处理方法: $SGE_ROOT/default/spool/qmaster/messages
再就具体问题进行相关处理,通常的问题有:

计算节点未挂载数据盘,出现文件找不到的错误。shell



www.jiangyexiang.comwindows


QQ×××流:283605880dom

相关文章
相关标签/搜索