有没有办法检查用户队列中有多少个作业?

有没有办法检查用户队列中有多少个作业?

我知道命令,例如 qsub、qstat -a、qstat -an 等。

但是,如何才能在任何给定时间内找到单个用户在队列中有多少个作业(不一定所有作业都在运行)?

答案1

我认为您正在寻找 的“用户”选项qstatqstat -u username列出属于给定用户的所有作业。可以使用反斜杠包含通配符:qstat -u \\*列出所有作业。

要回答您的具体问题(总工作量),您可以使用wc计算qstat输出的行数:

qstat -u username | wc -l

但是这会比实际作业多出两个,因为qstat有两个标题行。因此您可能需要的完整命令是:

expr $(qstat -u username | wc -l) - 2

它根据用户名请求作业,计算行数,然后减去 2。

答案2

标题行数可能不是 2(例如,在我们的 Cray 上是 5)。另一个解决方案是:

qselect -u username | wc -l

qselect不产生标题行。

答案3

一个实际的解决方案是, qstat -u username |grep username |wc -l 这样标题行的数量就无关紧要了。

相关内容