Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Risoluzione dei problemi di scalabilità
Questa sezione è rilevante per i cluster che sono stati installati utilizzando la AWS ParallelCluster versione 3.0.0 e successive con il Slurm pianificatore di lavori. Per ulteriori informazioni sulla configurazione di più code, vedere. Configurazione di più code
Se uno dei cluster in esecuzione presenta problemi, posiziona il cluster in uno STOPPED
stato eseguendo il comando seguente prima di iniziare la risoluzione dei problemi. In questo modo si evita di incorrere in costi imprevisti.
$
pcluster update-compute-fleet --cluster-name
mycluster
\ --status STOP_REQUESTED
È possibile elencare i flussi di log disponibili dai nodi del cluster utilizzando il pcluster list-cluster-log-streams comando e il filtraggio utilizzando uno private-dns-name
dei nodi in errore o il nodo principale:
$
pcluster list-cluster-log-streams --cluster-name
mycluster
--regioneu-west-1
\ --filters 'Name=private-dns-name,Values=ip-10-0-0-101'
È quindi possibile recuperare il contenuto del flusso di log per analizzarlo utilizzando il pcluster get-cluster-log-events comando e passando il --log-stream-name
corrispondente a uno dei log chiave indicati nella sezione seguente:
$
pcluster get-cluster-log-events --cluster-name
mycluster
\ --regioneu-west-1
--log-stream-nameip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init
AWS ParallelCluster crea flussi di CloudWatch log del cluster in gruppi di log. È possibile visualizzare questi registri nei dashboard personalizzati o nei CloudWatch gruppi di log della console. Per ulteriori informazioni, consulta Integrazione con Amazon CloudWatch Logs e CloudWatch Pannello di controllo Amazon.
Argomenti
- Registri chiave per il debug
- Viene visualizzato un InsufficientInstanceCapacity errore slurm_resume.log quando non riesco a eseguire un processo o clustermgtd.log quando non riesco a creare un cluster
- Risoluzione dei problemi di inizializzazione dei nodi
- Risoluzione dei problemi di sostituzioni e terminazioni impreviste dei nodi
- Sostituzione, interruzione o spegnimento di istanze e nodi problematici
- Stato della coda (partizione) Inactive
- Risoluzione di altri problemi noti relativi a nodi e processi
Registri chiave per il debug
La tabella seguente fornisce una panoramica dei log chiave per il nodo principale:
-
/var/log/cfn-init.log
- Questo è il registro di AWS CloudFormation inizializzazione. Contiene tutti i comandi che sono stati eseguiti durante la configurazione di un'istanza. Usalo per risolvere i problemi di inizializzazione. -
/var/log/chef-client.log
- Questo è il registro del client Chef. Contiene tutti i comandi che sono stati eseguiti tramite Chef/CINC. Usalo per risolvere i problemi di inizializzazione. -
/var/log/parallelcluster/slurm_resume.log
- Questo è un registro.ResumeProgram
Lancia istanze per nodi dinamici. Usalo per risolvere i problemi di avvio dei nodi dinamici. -
/var/log/parallelcluster/slurm_suspend.log
- Questo è il registro.SuspendProgram
Viene chiamato quando le istanze vengono terminate per i nodi dinamici. Usalo per risolvere i problemi di terminazione dei nodi dinamici. Quando controlli questo registro, dovresti controllare anche il registro.clustermgtd
-
/var/log/parallelcluster/clustermgtd
- Questo è ilclustermgtd
registro. Funziona come il demone centralizzato che gestisce la maggior parte delle azioni operative del cluster. Usalo per risolvere eventuali problemi di avvio, interruzione o funzionamento del cluster. -
/var/log/slurmctld.log
- Questa è la Slurm registro del demone di controllo. AWS ParallelCluster non prende decisioni di scalabilità. Piuttosto, tenta solo di lanciare risorse per soddisfare i Slurm requisiti. È utile per problemi di scalabilità e allocazione, problemi relativi al lavoro e qualsiasi problema di avvio e terminazione relativo alla pianificazione. -
/var/log/parallelcluster/compute_console_output
- Questo registro registra l'output della console da un sottoinsieme campione di nodi di calcolo statici che sono terminati in modo imprevisto. Utilizza questo registro se i nodi di calcolo statici terminano e i log dei nodi di calcolo non sono disponibili in. CloudWatch Ilcompute_console_output log
contenuto che ricevi è lo stesso quando usi la EC2 console Amazon o AWS CLI per recuperare l'output della console dell'istanza.
Questi sono i log chiave per i nodi di calcolo:
-
/var/log/cloud-init-output.log
- Questo è il log cloud-init. Contiene tutti i comandi che sono stati eseguiti durante la configurazione di un'istanza. Usalo per risolvere i problemi di inizializzazione. -
/var/log/parallelcluster/computemgtd
- Questo è il registro.computemgtd
Viene eseguito su ogni nodo di elaborazione per monitorare il nodo nel raro caso in cui ilclustermgtd
demone sul nodo principale sia offline. Usalo per risolvere problemi di terminazione imprevisti. -
/var/log/slurmd.log
- Questa è la Slurm calcola il registro del demone. Usalo per risolvere i problemi di inizializzazione e di errore di calcolo.
Viene visualizzato un InsufficientInstanceCapacity
errore slurm_resume.log
quando non riesco a eseguire un processo o clustermgtd.log
quando non riesco a creare un cluster
Se il cluster utilizza un Slurm scheduler, stai riscontrando un problema di capacità insufficiente. Se non ci sono abbastanza istanze disponibili quando viene effettuata una richiesta di avvio dell'istanza, viene restituito un InsufficientInstanceCapacity
errore.
Per quanto riguarda la capacità statica delle istanze, è possibile trovare l'errore nel clustermgtd
registro all'indirizzo/var/log/parallelcluster/clustermgtd
.
Per quanto riguarda la capacità dinamica delle istanze, è possibile trovare l'errore nel ResumeProgram
registro all'indirizzo/var/log/parallelcluster/slurm_resume.log
.
Il messaggio è simile al seguente esempio:
An error occurred (InsufficientInstanceCapacity) when calling the RunInstances/CreateFleet operation...
In base al tuo caso d'uso, valuta la possibilità di utilizzare uno dei seguenti metodi per evitare di ricevere questi tipi di messaggi di errore:
-
Disattivate il gruppo di posizionamento, se abilitato. Per ulteriori informazioni, consulta Gruppi di posizionamento e problemi di avvio delle istanze.
-
Riserva la capacità per le istanze e avviale con ODCR (On-Demand Capacity Reservations). Per ulteriori informazioni, consulta Avvia istanze con prenotazioni di capacità su richiesta () ODCR.
-
Configura più risorse di elaborazione con diversi tipi di istanze. Se il tuo carico di lavoro non richiede un tipo di istanza specifico, puoi sfruttare un failover rapido e insufficiente con più risorse di elaborazione. Per ulteriori informazioni, consulta Slurmfailover rapido e insufficiente della capacità del cluster.
-
Configura più tipi di istanze nella stessa risorsa di elaborazione e sfrutta l'allocazione di più tipi di istanza. Per ulteriori informazioni sulla configurazione di più istanze, consulta Allocazione di più tipi di istanza con Slurm e///. SchedulingSlurmQueuesComputeResourcesInstances
-
Sposta la coda in una zona di disponibilità diversa modificando l'ID della sottorete nella configurazione Schedulingdel cluster///. SlurmQueuesNetworkingSubnetIds
-
Se il tuo carico di lavoro non è strettamente collegato, distribuisci la coda tra diverse zone di disponibilità. Per ulteriori informazioni sulla configurazione di più sottoreti, consulta///. SchedulingSlurmQueuesNetworkingSubnetIds
Risoluzione dei problemi di inizializzazione dei nodi
Questa sezione illustra come risolvere i problemi di inizializzazione dei nodi. Ciò include i problemi in cui il nodo non riesce ad avviarsi, accendersi o entrare a far parte di un cluster.
Argomenti
Nodo principale
Registri applicabili:
-
/var/log/cfn-init.log
-
/var/log/chef-client.log
-
/var/log/parallelcluster/clustermgtd
-
/var/log/parallelcluster/slurm_resume.log
-
/var/log/slurmctld.log
Controlla i /var/log/chef-client.log
log /var/log/cfn-init.log
and o i flussi di log corrispondenti. Questi registri contengono tutte le azioni eseguite durante la configurazione del nodo principale. La maggior parte degli errori che si verificano durante l'installazione dovrebbero contenere messaggi di errore nel /var/log/chef-client.log
registro. Se OnNodeStart
nella configurazione del cluster sono specificati i nostri OnNodeConfigured
script, ricontrolla che lo script venga eseguito correttamente tramite i messaggi di registro.
Quando viene creato un cluster, il nodo principale deve attendere che i nodi di calcolo si uniscano al cluster prima di potersi unire al cluster. Per questo motivo, se i nodi di elaborazione non riescono a unirsi al cluster, anche il nodo principale fallisce. È possibile seguire una di queste serie di procedure, a seconda del tipo di note di calcolo utilizzate, per risolvere questo tipo di problema:
Nodi di calcolo
-
Registri applicabili:
-
/var/log/cloud-init-output.log
-
/var/log/slurmd.log
-
-
Se viene avviato un nodo di calcolo
/var/log/cloud-init-output.log
, controllate innanzitutto che contenga i log di configurazione simili a quelli del/var/log/chef-client.log
nodo principale. La maggior parte degli errori che si verificano durante l'installazione dovrebbero contenere messaggi di errore nel registro./var/log/cloud-init-output.log
Se nella configurazione del cluster sono specificati script di preinstallazione o post-installazione, verificate che siano stati eseguiti correttamente. -
Se stai utilizzando uno strumento personalizzato AMI con modifiche al Slurm configurazione, allora potrebbe esserci un Slurm-errore relativo che impedisce al nodo di calcolo di entrare a far parte del cluster. Per gli errori relativi alla pianificazione, controlla il registro.
/var/log/slurmd.log
Nodi di calcolo dinamici:
-
Cerca in
ResumeProgram
log (/var/log/parallelcluster/slurm_resume.log
) il nome del tuo nodo di calcolo per vedere seResumeProgram
è mai stato chiamato con il nodo. (SeResumeProgram
non è mai stato chiamato, puoi controllareslurmctld
log (/var/log/slurmctld.log
) per determinare se Slurm hai mai provato a chiamareResumeProgram
con il nodo). -
Tieni presente che autorizzazioni errate per
ResumeProgram
potrebbero causareResumeProgram
un errore silenzioso. Se stai utilizzando una configurazione personalizzata AMI con modifiche allaResumeProgram
configurazione, verifica che sia di proprietà dell'slurm
utente e disponga dell'autorizzazione744
(rwxr--r--
).ResumeProgram
-
Se
ResumeProgram
viene chiamato, controlla se è stata avviata un'istanza per il nodo. Se non è stata avviata alcuna istanza, viene visualizzato un messaggio di errore che descrive l'errore di avvio. -
Se l'istanza viene avviata, potrebbe essersi verificato un problema durante il processo di configurazione. Dovresti vedere l'indirizzo IP privato e l'ID dell'istanza corrispondenti dal
ResumeProgram
registro. Inoltre, puoi consultare i registri di configurazione corrispondenti per l'istanza specifica. Per ulteriori informazioni sulla risoluzione di un errore di configurazione con un nodo di calcolo, consulta la sezione successiva.
Nodi di calcolo statici:
-
Controlla il registro
clustermgtd
(/var/log/parallelcluster/clustermgtd
) per vedere se sono state lanciate istanze per il nodo. Se non sono state avviate, dovrebbe apparire un messaggio di errore chiaro che descrive in dettaglio l'errore di avvio. -
Se l'istanza viene avviata, c'è qualche problema durante il processo di configurazione. Dovresti vedere l'indirizzo IP privato e l'ID dell'istanza corrispondenti dal
ResumeProgram
registro. Inoltre, puoi consultare i registri di configurazione corrispondenti per l'istanza specifica.
Nodi di calcolo supportati da istanze Spot:
-
Se è la prima volta che utilizzi le istanze Spot e il lavoro rimane in un PD (stato in sospeso), ricontrolla il file.
/var/log/parallelcluster/slurm_resume.log
Probabilmente troverai un errore come il seguente:2022-05-20 13:06:24,796 - [slurm_plugin.common:add_instances_for_nodes] - ERROR - Encountered exception when launching instances for nodes (x1) ['spot-dy-t2micro-2']: An error occurred (AuthFailure.ServiceLinkedRoleCreationNotPermitted) when calling the RunInstances operation: The provided credentials do not have permission to create the service-linked role for Amazon EC2 Spot Instances.
Quando utilizzi le istanze Spot, nel tuo account deve esistere un ruolo
AWSServiceRoleForEC2Spot
collegato al servizio. Per creare questo ruolo nel tuo account utilizzando AWS CLI, esegui il seguente comando:$
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
Per ulteriori informazioni, consulta Utilizzo di Istanze spot la Guida per l' AWS ParallelCluster utente e il ruolo collegato ai servizi per le richieste di istanze Spot nella Amazon EC2 User Guide.
Risoluzione dei problemi di sostituzioni e terminazioni impreviste dei nodi
Questa sezione continua a esplorare come risolvere i problemi relativi ai nodi, in particolare quando un nodo viene sostituito o terminato in modo imprevisto.
-
Registri applicabili:
-
/var/log/parallelcluster/clustermgtd
(nodo principale) -
/var/log/slurmctld.log
(nodo principale) -
/var/log/parallelcluster/computemgtd
(nodo di calcolo)
-
Nodi sostituiti o terminati in modo imprevisto
-
Controlla nel
clustermgtd
log (/var/log/parallelcluster/clustermgtd
) per vedere se un nodoclustermgtd
è stato sostituito o terminato. Nota checlustermgtd
gestisce tutte le normali azioni di manutenzione del nodo. -
Se il nodo
clustermgtd
viene sostituito o terminato, dovrebbe esserci un messaggio che spiega in dettaglio il motivo per cui è stata intrapresa questa azione sul nodo. Se il motivo è correlato allo scheduler (ad esempio, perché il nodo è attivoDOWN
), controlla ilslurmctld
log in per ulteriori informazioni. Se il motivo è EC2 correlato ad Amazon, dovrebbe esserci un messaggio informativo che descriva in dettaglio il problema EC2 relativo ad Amazon che ha richiesto la sostituzione. -
Se
clustermgtd
non hai terminato il nodo, controlla innanzitutto se si trattava di una terminazione prevista da parte di AmazonEC2, in particolare di una terminazione puntuale.computemgtd
, in esecuzione su un nodo di elaborazione, può anche terminare un nodo seclustermgtd
viene determinato come non integro. Controllacomputemgtd
log (/var/log/parallelcluster/computemgtd
) per vedere se il nodo ècomputemgtd
terminato.
Nodi falliti
-
Controlla
slurmctld
log (/var/log/slurmctld.log
) per vedere perché un job o un nodo non sono riusciti. Tieni presente che i lavori vengono automaticamente messi in coda in caso di errore di un nodo. -
Se
slurm_resume
segnala che il nodo è stato avviato e dopo alcuni minuticlustermgtd
segnala che non esiste un'istanza corrispondente in Amazon EC2 per quel nodo, il nodo potrebbe fallire durante la configurazione. Per recuperare il log da un compute (/var/log/cloud-init-output.log
), procedi nel seguente modo:-
Invia un lavoro a let Slurm avvia un nuovo nodo.
-
Attendi l'avvio del nodo di calcolo.
-
Modifica il comportamento di chiusura avviato dall'istanza in modo che un nodo di calcolo guasto venga interrotto anziché terminato.
$
aws ec2 modify-instance-attribute \ --instance-id
i-1234567890abcdef0
\ --instance-initiated-shutdown-behavior "{\"Value\": \"stop\"}" -
Abilita la protezione da cessazione.
$
aws ec2 modify-instance-attribute \ --instance-id
i-1234567890abcdef0
\ --disable-api-termination -
Contrassegna il nodo in modo che sia facilmente identificabile.
$
aws ec2 create-tags \ --resources
i-1234567890abcdef0
\ --tags Key=Name,Value=QUARANTINED-Compute -
Stacca il nodo dal cluster modificando il
parallelcluster:cluster-name
tag.$
aws ec2 create-tags \ --resources
i-1234567890abcdef0
\ --tags Key=parallelcluster:clustername,Value=QUARANTINED-ClusterName -
Recupera l'output della console dal nodo con questo comando.
$
aws ec2 get-console-output --instance-id
i-1234567890abcdef0
--output text
-
Sostituzione, interruzione o spegnimento di istanze e nodi problematici
-
Registri applicabili:
-
/var/log/parallelcluster/clustermgtd
(nodo principale) -
/var/log/parallelcluster/slurm_suspend.log
(nodo principale)
-
-
Nella maggior parte dei casi,
clustermgtd
gestisce tutte le azioni di terminazione previste dell'istanza. Controlla ilclustermgtd
registro per vedere perché non è riuscito a sostituire o terminare un nodo. -
Se i nodi dinamici non funzionano SlurmSettingsProprietà correttamente, controlla il
SuspendProgram
registro per vedere seSuspendProgram
è stato chiamato usandoslurmctld
il nodo specifico come argomento. Nota che in realtàSuspendProgram
non esegue alcuna azione. Piuttosto, registra solo quando viene chiamato. La terminazione e ilNodeAddr
ripristino di tutte le istanze vengono eseguiti da.clustermgtd
Slurm riportaSuspendTimeout
automaticamente i nodi in unoPOWER_SAVING
stato. -
Se i nodi di calcolo falliscono continuamente a causa di errori di bootstrap, verifica se vengono avviati con enabled. Slurmmodalità protetta dal cluster Se la modalità protetta non è abilitata, modifica le impostazioni della modalità protetta per abilitare la modalità protetta. Risolvi i problemi e correggi lo script di bootstrap.
Stato della coda (partizione) Inactive
Se si esegue sinfo
e l'output mostra code con AVAIL
stato diinact
, è possibile che il cluster sia Slurmmodalità protetta dal cluster abilitato e che la coda sia stata impostata sullo INACTIVE
stato per un periodo di tempo predefinito.
Risoluzione di altri problemi noti relativi a nodi e processi
Un altro tipo di problema noto è che AWS ParallelCluster potrebbe non riuscire ad allocare i lavori o a prendere decisioni sulla scalabilità. Con questo tipo di problema, avvia, termina o gestisce le risorse AWS ParallelCluster solo in base a Slurm istruzioni. Per questi problemi, controlla il slurmctld
registro per risolverli.