Slurm Leitfaden für den Modus mit mehreren Warteschlangen - AWS ParallelCluster

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Slurm Leitfaden für den Modus mit mehreren Warteschlangen

AWS ParallelCluster Version 2.9.0 führte den Modus mit mehreren Warteschlangen und eine neue Skalierungsarchitektur für Slurm Workload Manager (Slurm).

Die folgenden Abschnitte bieten einen allgemeinen Überblick über die Verwendung von Slurm Cluster mit der neu eingeführten Skalierungsarchitektur.

Übersicht

Die neue Skalierungsarchitektur basiert auf SlurmDer Cloud Scheduling Guide und das Energiespar-Plugin. Weitere Informationen zum Energiespar-Plugin finden Sie unter Slurm Leitfaden zum Energiesparen. In der neuen Architektur sind Ressourcen, die potenziell für einen Cluster verfügbar gemacht werden können, in der Regel vordefiniert Slurm Konfiguration als Cloud-Knoten.

Lebenszyklus eines Cloud-Knotens

Während ihres gesamten Lebenszyklus treten Cloud-Knoten in mehrere, wenn nicht sogar alle der folgenden Zustände ein:POWER_SAVING, POWER_UP (pow_up), ALLOCATED (alloc) und POWER_DOWN (pow_dn). In einigen Fällen kann ein Cloud-Knoten in den OFFLINE Status wechseln. In der folgenden Liste werden verschiedene Aspekte dieser Zustände im Lebenszyklus eines Cloud-Knotens beschrieben.

  • Ein Knoten in einem POWER_SAVING Status wird mit einem ~ Suffix (zum Beispielidle~) in sinfo angezeigt. In diesem Status gibt es keine EC2 Instanz, die den Knoten unterstützt. Jedoch Slurm kann dem Knoten immer noch Jobs zuweisen.

  • Ein Knoten, der in einen POWER_UP Status übergeht, wird mit einem # Suffix (zum Beispielidle#) in angezeigt. sinfo

  • Wann Slurm weist einem Knoten in einem Status einen Job zu, der Knoten wechselt automatisch in einen POWER_SAVING Status. POWER_UP Andernfalls können Knoten mithilfe des Befehls manuell in den POWER_UP Status versetzt werden. scontrol update nodename=nodename state=power_up In dieser Phase ResumeProgram wird der aufgerufen und EC2 Instances werden gestartet und konfiguriert, um einen POWER_UP Knoten zu unterstützen.

  • Ein Knoten, der derzeit zur Verwendung verfügbar ist, wird ohne Suffix (z. B.idle) in angezeigt. sinfo Nachdem der Knoten eingerichtet wurde und dem Cluster beigetreten ist, steht er für die Ausführung von Jobs zur Verfügung. In dieser Phase ist der Knoten ordnungsgemäß konfiguriert und einsatzbereit. In der Regel empfehlen wir, dass die Anzahl der EC2 Instanzen der Anzahl der verfügbaren Knoten entspricht. In den meisten Fällen sind statische Knoten immer verfügbar, nachdem der Cluster erstellt wurde.

  • Ein Knoten, der in einen POWER_DOWN Status übergeht, wird mit einem % Suffix (z. B.idle%) in angezeigt. sinfo Dynamische Knoten wechseln automatisch danach in den POWER_DOWN Status. scaledown_idletime Im Gegensatz dazu werden statische Knoten in den meisten Fällen nicht ausgeschaltet. Knoten können jedoch mithilfe des scontrol update nodename=nodename state=powering_down Befehls manuell in den POWER_DOWN Status versetzt werden. In diesem Zustand wird die mit einem Knoten verknüpfte Instanz beendet und der Knoten wird in den POWER_SAVING Zustand zurückgesetzt, in dem er future verwendet werden kannscaledown_idletime. Die scaledown-idletime Einstellung wird gespeichert im Slurm Konfiguration als SuspendTimeout Einstellung.

  • Ein Knoten, der offline ist, wird mit einem * Suffix (z. B.down*) in sinfo angezeigt. Ein Knoten geht offline, wenn Slurm Der Controller kann den Knoten nicht kontaktieren oder wenn die statischen Knoten deaktiviert sind und die unterstützenden Instanzen beendet sind.

Betrachten Sie nun die im folgenden sinfo Beispiel gezeigten Knotenzustände.

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST efa up infinite 4 idle~ efa-dy-c5n18xlarge-[1-4] efa up infinite 1 idle efa-st-c5n18xlarge-1 gpu up infinite 1 idle% gpu-dy-g38xlarge-1 gpu up infinite 9 idle~ gpu-dy-g38xlarge-[2-10] ondemand up infinite 2 mix# ondemand-dy-c52xlarge-[1-2] ondemand up infinite 18 idle~ ondemand-dy-c52xlarge-[3-10],ondemand-dy-t2xlarge-[1-10] spot* up infinite 13 idle~ spot-dy-c5xlarge-[1-10],spot-dy-t2large-[1-3] spot* up infinite 2 idle spot-st-t2large-[1-2]

Für die efa-st-c5n18xlarge-1 Knoten spot-st-t2large-[1-2] und sind bereits Backing-Instances eingerichtet, sodass sie verwendet werden können. Die ondemand-dy-c52xlarge-[1-2] Knoten befinden sich im POWER_UP Status und sollten innerhalb weniger Minuten verfügbar sein. Der gpu-dy-g38xlarge-1 Knoten befindet sich im POWER_DOWN Status und wechselt danach in den POWER_SAVING Status scaledown_idletime (standardmäßig 120 Sekunden).

Alle anderen Knoten befinden sich im POWER_SAVING Status, ohne dass sie von EC2 Instanzen unterstützt werden.

Mit einem verfügbaren Knoten arbeiten

Ein verfügbarer Knoten wird von einer EC2 Instanz unterstützt. Standardmäßig kann der Knotenname verwendet werden, um direkt SSH in die Instanz zu gelangen (zum Beispielssh efa-st-c5n18xlarge-1). Die private IP-Adresse der Instanz kann mit dem scontrol show nodes nodename Befehl abgerufen und das NodeAddr Feld markiert werden. Bei Knoten, die nicht verfügbar sind, sollte das NodeAddr Feld nicht auf eine laufende EC2 Instanz verweisen. Vielmehr sollte es mit dem Knotennamen identisch sein.

Status und Einreichung von Job

In den meisten Fällen werden übermittelte Jobs sofort Knoten im System zugewiesen oder als ausstehend eingestuft, wenn alle Knoten zugewiesen sind.

Wenn die für einen Job zugewiesenen Knoten Knoten in einem POWER_SAVING Status enthalten, beginnt der Job mit einem CF oderCONFIGURING. Zu diesem Zeitpunkt wartet der Job darauf, dass die Knoten im POWER_SAVING Status in den POWER_UP Status wechseln und verfügbar sind.

Nachdem alle für einen Job zugewiesenen Knoten verfügbar sind, wechselt der Job in den Status RUNNING (R).

Standardmäßig werden alle Jobs an die Standardwarteschlange weitergeleitet (bekannt als Partition in Slurm). Dies wird durch ein * Suffix nach dem Warteschlangennamen gekennzeichnet. Sie können mit der Option zum Einreichen von -p Jobs eine Warteschlange auswählen.

Alle Knoten sind mit den folgenden Funktionen konfiguriert, die in Befehlen zur Auftragsübermittlung verwendet werden können:

  • Ein Instanztyp (zum Beispielc5.xlarge)

  • Ein Knotentyp (Dies ist entweder dynamic oderstatic.)

Sie können alle für einen bestimmten Knoten verfügbaren Funktionen anzeigen, indem Sie den scontrol show nodes nodename Befehl verwenden und die AvailableFeatures Liste überprüfen.

Ein weiterer Gesichtspunkt sind Arbeitsplätze. Betrachten Sie zunächst den Ausgangsstatus des Clusters, den Sie anzeigen können, indem Sie den sinfo Befehl ausführen.

$ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST efa up infinite 4 idle~ efa-dy-c5n18xlarge-[1-4] efa up infinite 1 idle efa-st-c5n18xlarge-1 gpu up infinite 10 idle~ gpu-dy-g38xlarge-[1-10] ondemand up infinite 20 idle~ ondemand-dy-c52xlarge-[1-10],ondemand-dy-t2xlarge-[1-10] spot* up infinite 13 idle~ spot-dy-c5xlarge-[1-10],spot-dy-t2large-[1-3] spot* up infinite 2 idle spot-st-t2large-[1-2]

Beachten Sie, dass spot dies die Standardwarteschlange ist. Sie wird durch das * Suffix angezeigt.

Sendet einen Job an einen statischen Knoten in der Standardwarteschlange (spot).

$ sbatch --wrap "sleep 300" -N 1 -C static

Sendet einen Job an einen dynamischen Knoten in der EFA Warteschlange.

$ sbatch --wrap "sleep 300" -p efa -C dynamic

Sendet einen Job an acht (8) c5.2xlarge Knoten und zwei (2) t2.xlarge Knoten an die ondemand Warteschlange.

$ sbatch --wrap "sleep 300" -p ondemand -N 10 -C "[c5.2xlarge*8&t2.xlarge*2]"

Sendet einen Job an einen GPU Knoten in der gpu Warteschlange.

$ sbatch --wrap "sleep 300" -p gpu -G 1

Betrachten Sie nun den Status der Jobs mithilfe des squeue Befehls.

$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 12 ondemand wrap ubuntu CF 0:36 10 ondemand-dy-c52xlarge-[1-8],ondemand-dy-t2xlarge-[1-2] 13 gpu wrap ubuntu CF 0:05 1 gpu-dy-g38xlarge-1 7 spot wrap ubuntu R 2:48 1 spot-st-t2large-1 8 efa wrap ubuntu R 0:39 1 efa-dy-c5n18xlarge-1

Die Jobs 7 und 8 (in den efa Warteschlangen spot und) werden bereits ausgeführt (R). Die Jobs 12 und 13 werden noch konfiguriert (CF) und warten wahrscheinlich darauf, dass die Instanzen verfügbar werden.

# Nodes states corresponds to state of running jobs $ sinfo PARTITION AVAIL TIMELIMIT NODES STATE NODELIST efa up infinite 3 idle~ efa-dy-c5n18xlarge-[2-4] efa up infinite 1 mix efa-dy-c5n18xlarge-1 efa up infinite 1 idle efa-st-c5n18xlarge-1 gpu up infinite 1 mix~ gpu-dy-g38xlarge-1 gpu up infinite 9 idle~ gpu-dy-g38xlarge-[2-10] ondemand up infinite 10 mix# ondemand-dy-c52xlarge-[1-8],ondemand-dy-t2xlarge-[1-2] ondemand up infinite 10 idle~ ondemand-dy-c52xlarge-[9-10],ondemand-dy-t2xlarge-[3-10] spot* up infinite 13 idle~ spot-dy-c5xlarge-[1-10],spot-dy-t2large-[1-3] spot* up infinite 1 mix spot-st-t2large-1 spot* up infinite 1 idle spot-st-t2large-2

Status und Funktionen des Knotens

In den meisten Fällen werden Knotenstatus AWS ParallelCluster gemäß den spezifischen Prozessen im Cloud-Knoten-Lebenszyklus, die weiter oben in diesem Thema beschrieben wurden, vollständig verwaltet.

Ersetzt oder beendet jedoch AWS ParallelCluster auch fehlerhafte Knoten in DRAINED Zuständen DOWN und Knoten, die über fehlerhafte Backing-Instances verfügen. Weitere Informationen finden Sie unter clustermgtd.

Status der Partition

AWS ParallelCluster unterstützt die folgenden Partitionsstatus. A Slurm Partition ist eine Warteschlange in AWS ParallelCluster.

  • UP: Zeigt an, dass sich die Partition in einem aktiven Zustand befindet. Dies ist der Standardstatus einer Partition. In diesem Zustand sind alle Knoten in der Partition aktiv und können verwendet werden.

  • INACTIVE: Zeigt an, dass sich die Partition im inaktiven Zustand befindet. In diesem Zustand werden alle Instanzen, die Knoten einer inaktiven Partition unterstützen, beendet. Neue Instanzen werden für Knoten in einer inaktiven Partition nicht gestartet.

pcluster starten und beenden

Wenn pcluster stop es ausgeführt wird, werden alle Partitionen in den INACTIVE Status versetzt, und die AWS ParallelCluster Prozesse behalten die Partitionen im INACTIVE Status bei.

Wenn ausgeführt pcluster start wird, werden zunächst alle Partitionen in den UP Status versetzt. AWS ParallelCluster Prozesse halten die Partition jedoch nicht in einem UP Zustand. Sie müssen den Partitionsstatus manuell ändern. Alle statischen Knoten sind nach einigen Minuten verfügbar. Beachten Sie, dass das Einstellen einer Partition auf keine dynamische Kapazität erhöht. UP Wenn größer als initial_count istmax_count, ist initial_count es möglicherweise nicht erfüllt, wenn der Partitionsstatus in den UP Status geändert wird.

Wenn pcluster start und ausgeführt pcluster stop werden, können Sie den Status des Clusters überprüfen, indem Sie den pcluster status Befehl ausführen und das überprüfenComputeFleetStatus. Im Folgenden werden mögliche Status aufgeführt:

  • STOP_REQUESTED: Die pcluster stop Anfrage wird an den Cluster gesendet.

  • STOPPING: Der pcluster Prozess stoppt derzeit den Cluster.

  • STOPPED: Der pcluster Prozess hat den Stoppvorgang abgeschlossen, alle Partitionen befinden sich im INACTIVE Status und alle Recheninstanzen wurden beendet.

  • START_REQUESTED: Die pcluster start Anfrage wird an den Cluster gesendet.

  • STARTING: Der pcluster Prozess startet gerade den Cluster

  • RUNNING: Der pcluster Prozess hat den Startvorgang abgeschlossen, alle Partitionen befinden sich im UP Status und statische Knoten sind nach einigen Minuten verfügbar.

Manuelle Steuerung von Warteschlangen

In einigen Fällen möchten Sie möglicherweise eine manuelle Kontrolle über die Knoten oder die Warteschlange haben (bekannt als Partition in Slurm) in einem Cluster. Sie können Knoten in einem Cluster mithilfe der folgenden gängigen Verfahren verwalten.

  • Dynamische Knoten im POWER_SAVING Status einschalten: Führen Sie den scontrol update nodename=nodename state=power_up Befehl aus oder senden Sie einen sleep 1 Platzhalter-Job, der eine bestimmte Anzahl von Knoten anfordert, und verlassen Sie sich auf Slurm um die erforderliche Anzahl von Knoten hochzufahren.

  • Dynamische Knoten vorher ausschaltenscaledown_idletime: Stellen Sie dynamische Knoten DOWN mit dem scontrol update nodename=nodename state=down Befehl auf ein. AWS ParallelCluster beendet die ausgefallenen dynamischen Knoten automatisch und setzt sie zurück. Im Allgemeinen empfehlen wir nicht, Knoten so einzustellen, dass sie den Befehl POWER_DOWN direkt verwenden. scontrol update nodename=nodename state=power_down Das liegt daran, dass der Abschaltvorgang AWS ParallelCluster automatisch abgewickelt wird. Es ist kein manueller Eingriff erforderlich. Daher empfehlen wir, dass Sie versuchen, die Knoten DOWN wann immer möglich auf zu setzen.

  • Deaktivieren Sie eine Warteschlange (Partition) oder stoppen Sie alle statischen Knoten in einer bestimmten Partition: Stellen Sie INACTIVE mit dem scontrol update partition=queue name state=inactive Befehl die Warteschlange spezifisch ein. Dadurch werden alle Instanzen beendet, die Knoten in der Partition unterstützen.

  • Eine Warteschlange (Partition) aktivieren: Stellen Sie INACTIVE mit dem scontrol update partition=queue name state=up Befehl eine bestimmte Warteschlange ein.

Skalierungsverhalten und Anpassungen

Hier ist ein Beispiel für den normalen Skalierungsablauf:

  • Der Scheduler empfängt einen Job, für den zwei Knoten erforderlich sind.

  • Der Scheduler versetzt zwei Knoten in einen POWER_UP Status und ruft ResumeProgram mit den Knotennamen auf (zum Beispielqueue1-dy-c5xlarge-[1-2]).

  • ResumeProgramstartet zwei EC2 Instances und weist die privaten IP-Adressen und Hostnamen von queue1-dy-c5xlarge-[1-2] zu. Warten Sie ResumeTimeout (der Standardzeitraum beträgt 60 Minuten (1 Stunde)), bevor die Knoten zurückgesetzt werden.

  • Die Instanzen werden konfiguriert und treten dem Cluster bei. Der Job wird auf Instanzen ausgeführt.

  • Die Job ist erledigt.

  • Nach Ablauf der konfigurierten SuspendTime Zeit (die auf gesetzt istscaledown_idletime), werden die Instanzen vom Scheduler in den POWER_SAVING Status versetzt. Der Scheduler queue1-dy-c5xlarge-[1-2] versetzt den POWER_DOWN Status und ruft SuspendProgram mit den Knotennamen auf.

  • SuspendProgramwird für zwei Knoten aufgerufen. Knoten bleiben in diesem POWER_DOWN Zustand, z. B. indem sie eine Zeit idle% lang verbleiben SuspendTimeout (der Standardzeitraum beträgt 120 Sekunden (2 Minuten)). Nachdem clustermgtd erkannt wurde, dass Knoten heruntergefahren werden, werden die unterstützenden Instances beendet. Anschließend wird die Konfiguration queue1-dy-c5xlarge-[1-2] in den Ruhezustand versetzt und die private IP-Adresse und der Hostname zurückgesetzt, sodass sie für future Jobs wieder eingeschaltet werden können.

Wenn nun etwas schief geht und eine Instanz für einen bestimmten Knoten aus irgendeinem Grund nicht gestartet werden kann, passiert Folgendes.

  • Der Scheduler empfängt einen Job, für den zwei Knoten erforderlich sind.

  • Der Scheduler versetzt zwei Cloud-Bursting-Knoten in den POWER_UP Status und ruft sie ResumeProgram mit den Knotennamen auf (zum Beispiel). queue1-dy-c5xlarge-[1-2]

  • ResumeProgramstartet nur eine (1) EC2 Instanz und konfiguriertqueue1-dy-c5xlarge-1, aber es konnte keine Instanz für gestartet werden. queue1-dy-c5xlarge-2

  • queue1-dy-c5xlarge-1ist nicht betroffen und wird nach Erreichen des POWER_UP Status online geschaltet.

  • queue1-dy-c5xlarge-2ist dem POWER_DOWN Status zugewiesen, und der Job wird automatisch in die Warteschlange gestellt, weil Slurm erkennt einen Knotenausfall.

  • queue1-dy-c5xlarge-2wird danach verfügbar SuspendTimeout (die Standardeinstellung ist 120 Sekunden (2 Minuten)). In der Zwischenzeit wird der Job in die Warteschlange gestellt und kann auf einem anderen Knoten ausgeführt werden.

  • Der obige Vorgang wird wiederholt, bis der Job auf einem verfügbaren Knoten ausgeführt werden kann, ohne dass ein Fehler auftritt.

Es gibt zwei Timing-Parameter, die bei Bedarf angepasst werden können.

  • ResumeTimeout(Die Standardeinstellung ist 60 Minuten (1 Stunde)): ResumeTimeout steuert die Zeit Slurm wartet, bevor der Knoten in den Status „Heruntergefahren“ versetzt wird.

    • Es könnte nützlich sein, dies zu verlängern, falls Ihr Prozess vor oder nach der Installation fast genauso lange dauert.

    • Dies ist auch die maximale AWS ParallelCluster Wartezeit, bis ein Knoten ersetzt oder zurückgesetzt wird, falls ein Problem auftritt. Rechenknoten beenden sich selbst, wenn während des Starts oder der Einrichtung ein Fehler auftritt. Als Nächstes ersetzt der AWS ParallelCluster Prozess auch den Knoten, wenn er feststellt, dass die Instanz beendet wurde.

  • SuspendTimeout(Die Standardeinstellung ist 120 Sekunden (2 Minuten)): SuspendTimeout Steuert, wie schnell Knoten wieder im System platziert und wieder einsatzbereit sind.

    • Ein kürzerer Wert SuspendTimeout würde bedeuten, dass die Knoten schneller zurückgesetzt werden und Slurm kann versuchen, Instances häufiger zu starten.

    • Eine längere Einstellung SuspendTimeout führt dazu, dass ausgefallene Knoten langsamer zurückgesetzt werden. In der Zwischenzeit Slurm Reifen, um andere Knoten zu verwenden. Wenn SuspendTimeout es mehr als ein paar Minuten sind, Slurm versucht, alle Knoten im System zu durchlaufen. Eine längere Laufzeit SuspendTimeout könnte für große Systeme (über 1.000 Knoten) von Vorteil sein, um die stress zu reduzieren Slurm indem Sie fehlgeschlagene Jobs häufig erneut in die Warteschlange stellen.

    • Beachten Sie, dass sich SuspendTimeout dies nicht auf die Wartezeit bezieht, AWS ParallelCluster bis eine Backing-Instance für einen Knoten beendet wurde. Backing-Instances für power down Knoten werden sofort beendet. Der Terminierungsvorgang ist in der Regel nach wenigen Minuten abgeschlossen. Während dieser Zeit befindet sich der Knoten jedoch im ausgeschalteten Zustand und kann nicht im Scheduler verwendet werden.

Protokolle für die neue Architektur

Die folgende Liste enthält die wichtigsten Protokolle für die Architektur mit mehreren Warteschlangen. Der mit Amazon Logs verwendete CloudWatch Log-Stream-Name hat das Format{hostname}.{instance_id}.{logIdentifier}, wobei logIdentifier folgt den Protokollnamen. Weitere Informationen finden Sie unter Integration mit Amazon CloudWatch Logs.

  • ResumeProgram:

    /var/log/parallelcluster/slurm_resume.log (slurm_resume)

  • SuspendProgram:

    /var/log/parallelcluster/slurm_suspend.log (slurm_suspend)

  • clustermgtd:

    /var/log/parallelcluster/clustermgtd.log (clustermgtd)

  • computemgtd:

    /var/log/parallelcluster/computemgtd.log (computemgtd)

  • slurmctld:

    /var/log/slurmctld.log (slurmctld)

  • slurmd:

    /var/log/slurmd.log (slurmd)

Häufige Probleme und Anleitung zum Debuggen:

Knoten, die nicht gestartet, hochgefahren oder dem Cluster nicht hinzugefügt werden konnten:

  • Dynamische Knoten:

    • Sehen Sie im ResumeProgram Protokoll nach, ob jemals mit dem Knoten aufgerufen ResumeProgram wurde. Falls nicht, überprüfen Sie das slurmctld Protokoll, um festzustellen, ob Slurm hat schon einmal versucht, ResumeProgram mit dem Knoten anzurufen. Beachten Sie, dass falsche Berechtigungen dazu führen ResumeProgram können, dass der Vorgang im Hintergrund fehlschlägt.

    • Wenn aufgerufen ResumeProgram wird, überprüfen Sie, ob eine Instanz für den Knoten gestartet wurde. Wenn die Instance nicht gestartet werden kann, sollte es eine klare Fehlermeldung geben, warum die Instance nicht gestartet werden konnte.

    • Wenn eine Instance gestartet wurde, ist möglicherweise während des Bootstrap-Vorgangs ein Problem aufgetreten. Suchen Sie die entsprechende private IP-Adresse und Instanz-ID aus dem ResumeProgram Protokoll und sehen Sie sich die entsprechenden Bootstrap-Protokolle für die jeweilige Instanz in CloudWatch Logs an.

  • Statische Knoten:

    • Prüfen Sie im clustermgtd Protokoll, ob Instanzen für den Knoten gestartet wurden. Wenn nicht, sollte es eindeutige Fehler darüber geben, warum die Instances nicht gestartet werden konnten.

    • Wenn eine Instance gestartet wurde, liegt ein Problem beim Bootstrap-Vorgang vor. Suchen Sie die entsprechende private IP und Instanz-ID aus dem clustermgtd Protokoll und sehen Sie sich die entsprechenden Bootstrap-Protokolle für die jeweilige Instanz in CloudWatch Logs an.

Knoten wurden unerwartet ersetzt oder beendet, Knotenausfälle

  • Knoten wurden unerwartet ersetzt/beendet

    • In den meisten Fällen clustermgtd erledigt es alle Wartungsaktionen für Knoten. Um zu überprüfen, ob ein Knoten clustermgtd ersetzt oder beendet wurde, überprüfen Sie das clustermgtd Protokoll.

    • Wenn der Knoten clustermgtd ersetzt oder beendet wurde, sollte eine Meldung erscheinen, die den Grund für die Aktion angibt. Wenn der Grund mit dem Scheduler zusammenhängt (zum Beispiel der KnotenDOWN), suchen Sie im slurmctld Protokoll nach weiteren Einzelheiten. Wenn der Grund EC2 damit zusammenhängt, verwenden Sie Tools, um den Status oder die Protokolle für diese Instanz zu überprüfen. Sie können beispielsweise überprüfen, ob für die Instanz Ereignisse geplant waren oder ob die EC2 Integritätsprüfungen nicht bestanden haben.

    • Falls der Knoten clustermgtd nicht beendet wurde, überprüfen Sie, ob der Knoten computemgtd beendet wurde oder ob die Instance EC2 beendet wurde, um eine Spot-Instance zurückzugewinnen.

  • Knotenausfälle

    • In den meisten Fällen werden Jobs automatisch in die Warteschlange gestellt, wenn ein Knoten ausfällt. Schauen Sie im slurmctld Protokoll nach, warum ein Job oder ein Knoten ausgefallen ist, und analysieren Sie die Situation von dort aus.

Fehler beim Ersetzen oder Beenden von Instanzen, Fehler beim Herunterfahren von Knoten

  • clustermgtdBehandelt im Allgemeinen alle erwarteten Aktionen zum Beenden von Instanzen. Sehen Sie im clustermgtd Protokoll nach, warum ein Knoten nicht ersetzt oder beendet werden konnte.

  • Wenn dynamische Knoten ausfallenscaledown_idletime, schauen Sie im SuspendProgram Protokoll nach, ob ein Programm slurmctld mit dem spezifischen Knoten als Argument gestartet wurde. Note führt eigentlich SuspendProgram keine bestimmte Aktion aus. Vielmehr protokolliert es nur, wenn es aufgerufen wird. Alle Instanzbeendigungen und NodeAddr Resets sind bis abgeschlossenclustermgtd. Slurm fügt Knoten in den Bereich IDLE danach einSuspendTimeout.

Andere Probleme

  • AWS ParallelCluster trifft keine Entscheidungen zur Stellenzuweisung oder Skalierung. Es versucht einfach, Ressourcen entsprechend zu starten, zu beenden und zu verwalten Slurmseine Anweisungen.

    Bei Problemen mit der Auftragszuweisung, der Knotenzuweisung und der Skalierungsentscheidung suchen Sie im slurmctld Protokoll nach Fehlern.