Isilon:作业重新启动长时间运行的最终任务
Summary: 由于长时间运行的最终任务,作业未显示进度。
Symptoms
此问题可以在所有作业中出现,最常见的标记是 jobs(Collect, IntegrityScan) 和 restriping jobs(SmartPools, AB/ABL, FP/FPL)。
在处理每个阶段的最后几个任务时,系统作业可能不会显示进度。
查看时频繁丢弃任务结果 isi_job_d.log 当任务重新启动时。
这可能会导致作业永远无法完成,因为在停用之前,一个或多个最终任务无法完成。
发生这种情况的原因有多种,例如,当同一排除集中优先级较高的作业开始运行时。
这也可能是由于达到了运行作业的限制,并且优先级更高的较新的作业开始运行。
其他可能的问题可能是作业引擎本身或群集问题,例如锁定争用、节点拆分、节点重新启动/崩溃、系统性能和其他可能的原因。
Cause
检查是否存在等待或正在运行的作业,这会导致作业的状态更改和任务重新启动。
如果您看到大量等待或正在运行状态更改,请查看作业以确认优先级。
如果开始的其他作业具有更高的优先级(1 是最高优先级),则可能会导致作业进入等待状态。
要实时检查:
isi job events list --job-id=<JobID>
isi_for_array -sQ 'grep -hi "<JobName>.*Run\|<JobName>.*Wait" /var/log/messages' |sort -u |tail
要签入日志,请执行以下作:
zgrep -h '<JobName>.*Run\|<JobName>.*Wait' */varlog.tar/log/messages* |grep <JobID>|sort -u |tail
有时,会看到相同的任务 ID 频繁重新启动,并且无法成功完成。
可能有多个任务 ID 频繁重新启动。
在任一情况下,请确保作业未进入等待或暂停状态,从而导致在前面的步骤中丢弃任务。
检查可能由于作业引擎限制而停用或丢弃的任务。
要实时检查:
isi_for_array -sQ 'grep -hi "deactivat\|discard" /var/log/isi_job_d.log' |grep <JobName> | sort -u | tail
要签入日志,请执行以下作:
grep -hi "deactivat\|discard" *-*/varlog.tar/log/isi_job_d.log* |grep <JobName> |sort -u|tail
在此示例中,丢弃了相同的任务 ID FlexProtectLin 作业查看 "tid=28-1" 在输出中:
[martid32@elvis 2024-10-29_20-31]$ zgrep -hi "deactivat\|discard" *-*/varlog.tar/log/isi_job_d.log* |grep 'FlexProtectLin jid=6894' |sort -u |tail
2024-10-10T06:01:53.217905-05:00 <3.6> CLUSTER-22(id22) isi_job_d[92144]: Worker 12 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=57916 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-11T11:50:02.236664-05:00 <3.6> CLUSTER-5(id5) isi_job_d[79762]: Worker 77 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=60525 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-11T16:24:26.930667-05:00 <3.6> CLUSTER-7(id7) isi_job_d[68876]: Worker 21 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=58508 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-11T19:14:46.876445-05:00 <3.6> CLUSTER-11(id11) isi_job_d[28510]: Worker 39 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=60665 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-11T20:30:49.232915-05:00 <3.6> CLUSTER-8(id8) isi_job_d[58489]: Worker 20 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=74387 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-12T00:09:39.969852-05:00 <3.6> CLUSTER-26(id26) isi_job_d[12284]: Worker 13 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=58255 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-12T00:39:46.999158-05:00 <3.6> CLUSTER-2(id2) isi_job_d[78458]: Worker 485 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=58365 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-12T01:18:53.867843-05:00 <3.6> CLUSTER-11(id11) isi_job_d[28510]: Worker 53 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=60666 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-12T02:21:01.143101-05:00 <3.6> CLUSTER-28(id28) isi_job_d[11777]: Worker 18 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=58221 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
2024-10-12T03:19:07.198836-05:00 <3.6> CLUSTER-1(id1) isi_job_d[87488]: Worker 561 Stopped: (task_state_clean, 614) FlexProtectLin[6894].0: Discarding unsent task result: { task_result={ jtid=FlexProtectLin jid=6894 phase=0 tid=28-1 rid=60128 ready=false errors=[] } data={ lins=0 files=0 dirs=0 blocks=0 lins_processed=0 sins=0 sins_processed=0 } start_linsid=0::INVALID end_linsid=0::INVALID }
以下命令可用于确认当前任务的数量及其正在处理的内容:
for i in $(isi job list|grep '^[0-9].*Running'|awk '{print $1}'); do isi job view $i; isi job statistics view -v --job-id=$i|grep -o 'Workers: [0-9]*'|sort |uniq -c; echo $(find /ifs/.ifsvar/modules/jobengine/cp/$i/tasks -type f | wc -l) tasks remaining; done;
取代 JOBID 使用 JobID 相关职位的编号:--
isi_for_array -XQ 'for n in $(sysctl efs.bam.busy_vnodes | grep "pid $(pgrep -f JOBID)" | egrep -o "[[:alnum:]]{1,4}:[[:alnum:]]{1,4}:[[:alnum:]]{1,4}"|sort|uniq); do isi get -L "$n" 2>&1; done' | grep -v 'job_d\|modules/jobengine' | sort | uniq -c
Resolution
如果确认作业正在等待或由于其他作业启动而频繁运行,则暂时修改为更高的优先级。
优先级 2 可用于防止作业中断相关作业,并在作业完成后恢复为默认值。
如果作业似乎限制工作器进程,导致任务被多次丢弃,请联系支持部门寻求帮助并引用此知识库文章。