Isilon: Restartování dlouhotrvajících závěrečných úloh
Summary: Úlohy nevykazují průběh kvůli dlouhotrvajícím závěrečným úlohám.
Symptoms
Tento problém se vyskytuje u všech úloh, nejčastěji u značení jobs(Collect, IntegrityScan) a restriping jobs(SmartPools, AB/ABL, FP/FPL).
Systémové úlohy nemusí vykazovat průběh při práci na několika posledních úlohách v každé fázi.
Při kontrole se často zobrazují výsledky zahazování úloh isi_job_d.log při restartování úloh.
To může vést k tomu, že se úloha nikdy nedokončí, protože jeden nebo více závěrečných úkolů nelze dokončit před deaktivací.
K tomu dochází z několika důvodů, například když se spustí úloha s vyšší prioritou ve stejné sadě vyloučení.
Může to být také způsobeno dosažením limitu spuštěných úloh a spuštěním novější úlohy s vyšší prioritou.
Dalšími možnými problémy mohou být samotný modul úloh nebo problémy s clusterem, jako jsou kolize uzamčení, rozdělení uzlů, restartování/panika uzlů, výkon systému a další možné příčiny.
Cause
Zkontrolujte, zda úloha čeká nebo běží, což by způsobilo změny stavu v úloze, a úlohy se restartují.
Pokud se zobrazí vysoký počet čekajících nebo spuštěných změn stavu, podívejte se na úlohu a potvrďte prioritu.
Pokud mají jiné spuštěné úlohy vyšší prioritu (1 je nejvyšší priorita), může to způsobit, že úloha přejde do čekání.
Kontrola v reálném čase:
isi job events list --job-id=<JobID>
isi_for_array -sQ 'grep -hi "<JobName>.*Run\|<JobName>.*Wait" /var/log/messages' |sort -u |tail
Vrácení protokolů se změnami:
zgrep -h '<JobName>.*Run\|<JobName>.*Wait' */varlog.tar/log/messages* |grep <JobID>|sort -u |tail
Někdy se stejné ID úlohy často restartuje a nelze jej úspěšně dokončit.
Potenciálně existuje několik ID úloh, které se často restartují.
V obou případech se ujistěte, že úloha není vložena do stavu čekání nebo pozastavení, což by způsobilo zahození úloh s předchozími kroky.
Zkontrolujte deaktivované nebo zahozené úlohy, které mohou být způsobeny omezením modulu úloh.
Kontrola v reálném čase:
isi_for_array -sQ 'grep -hi "deactivat\|discard" /var/log/isi_job_d.log' |grep <JobName> | sort -u | tail
Vrácení protokolů se změnami:
grep -hi "deactivat\|discard" *-*/varlog.tar/log/isi_job_d.log* |grep <JobName> |sort -u|tail
V tomto příkladu se stejné ID úkolu zahazuje pro FlexProtectLin Job se podívá na "tid=28-1" Ve výstupu:
[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 }
Níže uvedené příkazy lze použít k potvrzení aktuálního počtu úloh a toho, na čem pracují:
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;
Nahradit JOBID Pomocí tlačítka JobID číslo pro danou práci: -
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
Pokud se potvrdí, že úloha čeká nebo běží často kvůli spouštění jiných úloh, dočasně ji upravte na vyšší prioritu.
Prioritu 2 lze použít, aby zabránila úlohám v přerušení úlohy, která vzbuzuje problém, a po dokončení úlohy se může vrátit do výchozího nastavení.
Obraťte se na podporu s žádostí o pomoc a odkažte se na tento článek znalostní databáze, pokud se zdá, že úloha omezuje pracovní procesy, což způsobuje její vícenásobné zahození.