最近服务器可能是出了一点小毛病,正常配置的WRF在运行的时候,有时候积分特别慢,类似这种
image.png
不清楚出现这种情况的具体原因是什么。多次测试后发现,中断重新提交任务,有几率正常运行。于是在自动化运行脚本中增加了一小段代码,用于检测积分是否过慢,以及删除任务,重新提交。直至积分正常退出控制脚本。(不知道会不会被管理员警告、、、)
整个控制流程太长,这里只给出暴力检测部分代码
sleep 2m
set logic = 0
while($logic < 1 )
set flags = `tail -n 1 rsl.error.0000 | awk '{print $1}'`
set time_int = `tail -n 1 rsl.error.0000 | awk '{print $11}'`
set time2 = `echo $time_int | cut -c 1 `
set jobid = `ll test* | awk '{print $9}' | awk 'END{print $0}' | cut -c 11-16`
##################################################################
#用上面更新的方法获取jobid没有运行上的限制,下面的方法是旧的
#set jobid = `qstat | grep ranlk | awk '{print $1}' | awk 'END{print $0}'`
#get the last jobid to avoid erasing previously unfinished jobs
#do not submit other jobs while the script is running
####################################################################
if( "${flags}" == "Timing" ) then
if( $time2 < 2 ) then
@ logic = $logic + 1
else
qdel $jobid
/opt/gridview/pbs/dispatcher/bin/qsub ${wrkdir}/wrf/sub_wrf${timestring}.pbs
sleep 2m
endif
endif
end
网友评论