| 查看: 1277 | 回复: 17 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
wuy069铁杆木虫 (正式写手)
|
[求助]
请教:用Shell, awk, perl等语言实现监视SGE集群节点和任务
|
|
|
请教:用Shell, awk, perl等语言实现监视SGE集群节点和任务 简单的bash shell和awk语言会点,但弄个复杂的脚本,功底还是不够 下面的格式有点错位,我把相应的内容以附件粘贴了。 [wuy@cluster test]$ qhost -j HOSTNAME ARCH NCPU LOAD MEMTOT MEMUSE SWAPTO SWAPUS ------------------------------------------------------------------------------- global - - - - - - - compute-0-0 lx26-amd64 4 2.97 3.9G 3.5G 4.0G 2.9G job-ID prior name user state submit/start at queue master ja-task-ID ---------------------------------------------------------------------------------------------- 6 0.50500 test1.sh wuy r 12/09/2012 14:47:26 all.q@comp MASTER 7 0.60500 test4.sh wuy r 12/09/2012 14:47:26 all.q@comp MASTER all.q@comp SLAVE all.q@comp SLAVE compute-0-1 lx26-amd64 4 3.56 3.9G 3.8G 4.0G 3.1G job-ID prior name user state submit/start at queue master ja-task-ID ---------------------------------------------------------------------------------------------- 8 0.60500 test2.sh tester r 12/09/2012 14:48:52 all.q@comp MASTER all.q@comp SLAVE all.q@comp SLAVE 9 0.60500 test3.sh tester r 12/09/2012 14:48:52 all.q@comp MASTER all.q@comp SLAVE all.q@comp SLAVE 在compute-0-0节点上有两个任务6和7,所用的cpu分别为1和2;在compute-0-1节点上有两个任务8和9,所用的cpu分别为2和2. 使用Shell, awk, perl等语言获得的命令脚本打印输出下面所示: ------------------------------------------------------------------------------------------------ node state load ncpu mem memuse swapto swapus tasks jobids/users ------------------------------------------------------------------------------------------------ compute-0-0 free 2.97 4 3.9G 3.5G 4.0G 2.9G 3 6/wuy 7/wuy compute-0-1 busy 3.56 4 3.9G 3.8G 4.0G 3.1G 4 8/tester 9/tester 其中,当node的LOAD为“-”时,相应node的state为down. 下面是根据qstat命令编写脚本监视任务的申请时间和逝去时间 [wuy@cluster test]$ qstat -u '*' job-ID prior name user state submit/start at queue slots ja-task-ID ----------------------------------------------------------------------------------------------------------------- 6 0.50500 test1.sh wuy r 12/09/2012 14:47:26 all.q@compute-0-0.local 1 7 0.60500 test4.sh wuy r 12/09/2012 14:47:26 all.q@compute-0-0.local 2 8 0.60500 test2.sh tester r 12/09/2012 14:48:52 all.q@compute-0-1.local 2 9 0.60500 test3.sh tester r 12/09/2012 14:48:52 all.q@compute-0-1.local 2 [wuy@cluster test]$ qstat -j 6 |grep h_rt hard resource_list: h_rt=3600 得到的申请时间(reqtime)为3600s,改为小时制:1:00:00 逝去的时间(elaptime)为现在的时间`date`减去任务开始的时间 使用Shell, awk, perl等语言获得的命令脚本打印输出下面所示 job-ID name user state submit/start at queue slots reqtime elaptime -------------------------------------------------------------------------------------------------------------------- 6 test1.sh wuy r 12/09/2012 14:47:26 all.q@compute-0-0.local 1 1:00:00 00:50:00 7 test4.sh wuy r 12/09/2012 14:47:26 all.q@compute-0-0.local 2 2:00:00 00:50:00 8 test2.sh tester r 12/09/2012 14:48:52 all.q@compute-0-1.local 2 5:00:00 00:48:34 9 test3.sh tester r 12/09/2012 14:48:52 all.q@compute-0-1.local 2 12:00:00 00:48:34[ Last edited by wuy069 on 2012-12-9 at 18:30 ] |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : 求助.txt
2012-12-09 18:30:44, 4.22 K
» 猜你喜欢
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有6人回复
2025冷门绝学什么时候出结果
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有8人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有5人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
钢管混凝土桁架的单元选取问题
已经有5人回复
钢管混凝土桁架的建模问题
已经有2人回复
请教虫虫们:我分配了50G的内存,gaussian报错……
已经有3人回复
用170,175单元耦合壳和梁,怎么设置材料属性,实常数?和184有什么区别
已经有0人回复
关于wien2k软件安装和配置问题请教各位高手!
已经有8人回复
热沉淀法合成上转换纳米离子求教
已经有8人回复
SCF电子占据
已经有3人回复
又被督导(退休老师组成的)老师听课!
已经有22人回复
复合材料连续管ANSYS分析
已经有13人回复
visual studio 2008 中的VB调用ansys时老是VB内部错误而关闭
已经有8人回复
请教:用Shell, awk, perl等语言实现监视SGE集群节点和任务
已经有0人回复
请教C-Shell的Script如何获取Elapsed Time
已经有2人回复
【求助】弹性力学-ansys-机械
已经有8人回复
【求助】请教用高斯09算溶剂化单点时,怎样得到溶剂中的Gibbs自由能?
已经有9人回复
【请教】乙醇溶剂中ZnO纳米粒子的制备?
已经有14人回复
【求助】在计算含pt的吸收光谱的时候,居然出现 l801错误,请教怎样解决?
已经有3人回复
wuy069
铁杆木虫 (正式写手)
- 应助: 20 (小学生)
- 金币: 7921.9
- 散金: 15
- 红花: 10
- 帖子: 506
- 在线: 549.1小时
- 虫号: 760723
- 注册: 2009-04-30
- 性别: GG
- 专业: 理论和计算化学
|
嗯,shell+awk应该是能实现的,awk学的不咋好,一时半会整不出来 根据qhost -j命令输出的结果,编写一个脚本打印出: ------------------------------------------------------------------------------------------------ node state load ncpu mem memuse swapto swapus tasks jobids/users ------------------------------------------------------------------------------------------------ compute-0-0 free 2.97 4 3.9G 3.5G 4.0G 2.9G 3 6/wuy 7/wuy compute-0-1 busy 3.56 4 3.9G 3.8G 4.0G 3.1G 4 8/tester 9/tester 这是第一个脚本 第二个: 根据qstat -u ’*'和qstat -j jobid输出的结果,编一个脚本输出以下部分: job-ID name user state submit/start at queue slots reqtime elaptime -------------------------------------------------------------------------------------------------------------------- 6 test1.sh wuy r 12/09/2012 14:47:26 all.q@compute-0-0.local 1 1:00:00 00:50:00 7 test4.sh wuy r 12/09/2012 14:47:26 all.q@compute-0-0.local 2 2:00:00 00:50:00 8 test2.sh tester r 12/09/2012 14:48:52 all.q@compute-0-1.local 2 5:00:00 00:48:34 9 test3.sh tester r 12/09/2012 14:48:52 all.q@compute-0-1.local 2 12:00:00 00:48:34 如果你觉得很容易,我可以给你提供个账号,你在机器上可以编写;方便的话,可把你的QQ号用站内消息发我,谢谢! |
3楼2012-12-09 21:20:59
wuy069
铁杆木虫 (正式写手)
- 应助: 20 (小学生)
- 金币: 7921.9
- 散金: 15
- 红花: 10
- 帖子: 506
- 在线: 549.1小时
- 虫号: 760723
- 注册: 2009-04-30
- 性别: GG
- 专业: 理论和计算化学
6楼2012-12-10 08:08:41
wuy069
铁杆木虫 (正式写手)
- 应助: 20 (小学生)
- 金币: 7921.9
- 散金: 15
- 红花: 10
- 帖子: 506
- 在线: 549.1小时
- 虫号: 760723
- 注册: 2009-04-30
- 性别: GG
- 专业: 理论和计算化学
8楼2012-12-10 13:45:36
wuy069
铁杆木虫 (正式写手)
- 应助: 20 (小学生)
- 金币: 7921.9
- 散金: 15
- 红花: 10
- 帖子: 506
- 在线: 549.1小时
- 虫号: 760723
- 注册: 2009-04-30
- 性别: GG
- 专业: 理论和计算化学
|
qnod命令还是有问题: 如果执行主机关掉了, qhost -j输出如下: HOSTNAME ARCH NCPU LOAD MEMTOT MEMUSE SWAPTO SWAPUS ------------------------------------------------------------------------------- global - - - - - - - cluster lx26-amd64 4 - 3.9G - 4.0G - 这时用qhost |grep ' -' |grep -v global来判断有没有执行主机的load为' -',如果有这个执行主机的状态state为down。 当执行主机没有任务时,且LOAD不为' -'时,state显示也要为free。你写的这个qnod命令显示为空。 qnod基于qhost -j输出的能否加上个listflag,就是输出的Load,MemUse,SwapUse超出系统固有值时给加一个星号(*),比如Load的值为4.87,这样超出4,多余0.5就加星(4.87*)。状态state的输出down,free,busy为加粗且为不同的颜色。 qjob基于qstat命令输出等候的任务能不能不要给出逝去时间,只是运行的任务才给出逝去时间;qjob的输出有点慢 能做到以上就perfect了。 |
11楼2012-12-11 08:40:06
wuy069
铁杆木虫 (正式写手)
- 应助: 20 (小学生)
- 金币: 7921.9
- 散金: 15
- 红花: 10
- 帖子: 506
- 在线: 549.1小时
- 虫号: 760723
- 注册: 2009-04-30
- 性别: GG
- 专业: 理论和计算化学
|
提交一个单独的4核任务,用qnod命令显示的task时输出是5,这个没弄好。 [wuy@cluster test]$ qstat job-ID prior name user state submit/start at queue slots ja-task-ID ----------------------------------------------------------------------------------------------------------------- 36 0.55500 test5.sh wuy r 12/11/2012 08:21:52 [email]all.q@cluster.loca[/email]l 4 [wuy@cluster test]$ qnod ------------------------------------------------------------------------------------------------ Node Load Ncpu Mem MemUse Swap SwapUse State Task Job/User ------------------------------------------------------------------------------------------------ cluster 2.36 4 3.9G 1.1G 4.0G 0.0 Busy 5 36/wuy ------------------------------------------------------------------------------------------------ |
12楼2012-12-11 08:46:41
wuy069
铁杆木虫 (正式写手)
- 应助: 20 (小学生)
- 金币: 7921.9
- 散金: 15
- 红花: 10
- 帖子: 506
- 在线: 549.1小时
- 虫号: 760723
- 注册: 2009-04-30
- 性别: GG
- 专业: 理论和计算化学
14楼2012-12-11 10:44:12
wuy069
铁杆木虫 (正式写手)
- 应助: 20 (小学生)
- 金币: 7921.9
- 散金: 15
- 红花: 10
- 帖子: 506
- 在线: 549.1小时
- 虫号: 760723
- 注册: 2009-04-30
- 性别: GG
- 专业: 理论和计算化学
16楼2012-12-11 10:54:27
wuy069
铁杆木虫 (正式写手)
- 应助: 20 (小学生)
- 金币: 7921.9
- 散金: 15
- 红花: 10
- 帖子: 506
- 在线: 549.1小时
- 虫号: 760723
- 注册: 2009-04-30
- 性别: GG
- 专业: 理论和计算化学
|
谢谢!从网上能看到一些: 颜色:"\033[1;5;37;41mdown\033[0m" flag: # Flag nodes with status down, offline or unknown if (state[node] == "busy" || state[node] == "down" || state[node] == "offl" || state[node] == "UNKN" {stateflag="*" listnode++ } else stateflag=" " # Flag unexpected CPU load average loaddiff = loadave[node] - numtasks[node] if (loaddiff > 0.5 || loaddiff < -0.5) { loadflag="*" listnode++ } else loadflag=" " # Resident memory resi = (totmem[node]-availmem[node])/1024 if (resi > 50 && resi > physmem[node]/1024 - 50) { # High memory usage resiflag="*" listnode++ } else resiflag=" " # Flag unexpected number of processes or users if (nsessions[node] > 2*ncpus[node] + 1) { # More than 2 sessions per job sessflag="*" listnode++ } else if (nusers[node] > ncpus[node]) { # More users than nCPUs is bad sessflag="*" listnode++ } else sessflag=" " # Flag unexpected number of jobs if (numjobs[node] > numtasks[node]) { # Should be at least 1 task per job jobflag="*" listnode++ } else jobflag=" " 组合在一起不会,抽时间看看教程; 谢谢! |
18楼2012-12-11 11:16:25













回复此楼
{