queue instance " " dropped because it is full 由于过载或已满而丢弃所有队列

其他类似报错

queue instance " " dropped because it is temporarily not available 

queue instance " " dropped because it is disabled

报错显示

$qstat -j
queue instance "peteris.q@sge00" dropped because it is full

解释:sge由于过载或已满而丢弃所有队列

 

解决回答:

似乎您已达到队列在任何给定时间可以处理的活动作业数量的实际限制。我无法确定SGE定义的最大值在哪里,但似乎可能是:

max_jobs

Sun Grid Engine中同时允许的活动(未完成)作业的数量由此参数控制。大于0的值定义极限。默认值0表示“无限制”。如果作业提交超出了max_jobs限制,则提交命令将退出,退出状态为25,并显示相应的错误消息。更改max_jobs将立即生效。此值仅是全局配置参数。执行主机本地配置不能覆盖它。

来自:http : //gridscheduler.sourceforge.net/htmlman/htmlman5/sge_conf.html?pathrev=V62u5_TAG

如果这是正确的,那么值是无限的。但是,SGE可能无法很好地管理约100万个活跃工作,因此您可能会遇到这个问题。我建议您使用作业数组,因为这是此类作业的目的,即管理和运行许多几乎相同的任务

SGE中有许多在线资源可用于作业阵列,例如:

http://wiki.gridengine.info/wiki/index.php/Simple-Job-Array-Howto

http://talby.rcs.manchester.ac.uk/~ri/_linux_and_hpc_lib/sge_array.html

https://wiki.duke.edu/display/SCSC/SGE+Array+Jobs

如果您根据每个任务的特定要求编辑问题,我们很乐意为您提供进一步的帮助。例如,大约一百万个任务中的每一个是否都需要一个或多个参数作为输入?

  18年5月29日在12:03 回答 文斯  
  •   谢谢您的回答。但是我确实已经将maxjobs设置为0 –  kim jason 18年4月4日在8:58 
  •   那么maxjobs0解决这个问题了吗?或者,您已经设置maxjobs0 问题仍然存在? – 文斯 18年  6月4日12:53
  •   我怀疑问题是,鉴于提交节点的资源,SGE无法控制该数量的作业。对于涉及数千个任务的工作负载,建议使用任务数组。 – 文斯 18年  6月19日在17:07     来源:https://*.com/questions/50551042/sge-all-queues-dropped-because-of-overload-or-full    

    Sun Grid Engine作业阵列

    1。 

    为什么?

    假设您希望运行大量在很大程度上相同的作业:您可能希望使用不同的参数或参数多次运行同一程序;或处理一千个不同的输入文件。可以编写一个Perl脚本来生成所有必需的qsub文件,并编写一个BASH脚本来提交所有这些文件。但是,这不是您的时间的好用,它会对集群上的Submit(登录)节点造成可怕的影响。

    使用SGE阵列作业会更好!

    2。 

    什么?

    SGE阵列作业可以描述为内置有for循环的作业。这是一个简单的示例:

      #!/ bin / bash
    
      #$ -cwd
      #$ -S / bin / bash
    
      #$ -t 1-1000
          #...告诉SGE这是一个阵列作业,“任务”从1开始编号 
          #至10000 ...
    
      ./myprog <data。$ SGE_TASK_ID>结果。$ SGE_TASK_ID
    
    通过计算,这等效于1000个单独的队列提交,其中SGE_TASK_ID的取值为1、2、3。。1000,其中输入和输出文件由ID索引。然而:
    • 仅发出一个qsub命令(并且只需一个qdel命令即可删除所有作业);
    • qstat输出中仅显示一个条目;
    • SGE提交节点(即群集登录节点)上的负载大大少于提交1000个单独作业的负载!

     

    略有变化-在单独的目录(文件夹)中运行每个作业:

      #!/ bin / bash
    
      #$ -cwd
      #$ -S / bin / bash
    
      #$ -t 1-1000
    
      mkdir myjob- $ SGE_TASK_ID
      cd myjob- $ SGE_TASK_ID
      ../myprog-one> one.output
      ../myprog-two <one.output> two.output


    3。 

    更多

    有关SGE作业阵列的更多信息,请访问:

     

    4。 

    更通用的For循环

    SGE_TASK_ID 不必从1开始;增量不得为1。例如:

      #$ -t 100-995:5
    
    因此SGE_TASK_ID的取值为100、105、110、115 ... 995。

     

    顺便提及,例如,在上限不等于下限加上增量的整数倍的情况下,

      #$ -t 1-42:6
    
    SGE自动更改上限,
      提示> qsub array.qsub
      您的作业数组2642.1-42:6(“ array.qsub”)已提交
    
      提示> qstat
      作业ID优先名称用户状态提交/开始于队列插槽ja-task-ID 
      -------------------------------------------------- -----------------------------------------
       2642 0.00000 array.qsub simonh qw 04/24/2009 12:29:29 1 1-37:6
    

     

    5, 

    相关环境变量

    可以使用另外三个自动创建的环境变量,如以下简单的qsub脚本所示:

      #!/ bin / bash
    
      #$ -cwd 
      #$ -S / bin / bash
    
      #$ -t 1-37:6
    
      echo“ ID增量为:$ SGE_TASK_STEPSIZE”
    
      如果[[$ SGE_TASK_ID == $ SGE_TASK_FIRST]]; 然后
          回声“第一”
      elif [[$ SGE_TASK_ID == $ SGE_TASK_LAST]]; 然后
          回声“最后”
      其他
          回声“都不”
      科幻
    

     

    6。 

    输入文件列表

    可以偷偷摸摸-假设我们有一个输入文件列表,而不是由后缀显式索引的输入文件:

      #!/ bin / bash
    
      #$ -cwd
      #$ -S / bin / bash
    
      #$ -t 1-42
    
      $ INFILE =`awk“ NR == $ SGE_TASK_ID” my_file_list.text`
          #
          #...或使用的sed:    
          #sed -n“ $ {SGE_TASK_ID} p” my_file_list.text
          #
    
      ./myprog <$ INFILE


    来源:
    http://talby.rcs.manchester.ac.uk/~ri/_linux_and_hpc_lib/sge_array.html
上一篇:Nginx 开启,关闭,重启,查看命令,错误解决:Job for nginx.service failed because the control process exited with error


下一篇:docker启动失败