View a markdown version of this page

Arbeiten mit Spot-Instances - 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.

Arbeiten mit Spot-Instances

AWS ParallelCluster verwendet Spot-Instances, wenn die Cluster-Konfiguration set Clustertyp = spot hat. Spot-Instances sind kostengünstiger als On-Demand Instances, aber sie können unterbrochen werden. Die Auswirkungen der Unterbrechung variieren je nach verwendetem Scheduler. Es kann hilfreich sein, die Hinweise zur Unterbrechung von Spot-Instances zu nutzen, die eine zweiminütige Warnung ausgeben, bevor Amazon EC2 Ihre Spot-Instance beenden oder beenden muss. Weitere Informationen finden Sie unter Spot-Instance-Unterbrechungen im Amazon EC2-Benutzerhandbuch. In den folgenden Abschnitten werden drei Szenarien beschrieben, in denen Spot-Instances unterbrochen werden können.

Anmerkung

Für die Verwendung von Spot-Instances muss die mit dem AWSServiceRoleForEC2Spot Service verknüpfte Rolle in Ihrem Konto vorhanden sein. Führen Sie den folgenden Befehl aus AWS CLI, um diese Rolle in Ihrem Konto mithilfe von zu erstellen:

aws iam create-service-linked-role --aws-service-name spot.amazonaws.com

Weitere Informationen finden Sie unter Service-linked Rolle für Spot-Instance-Anfragen im Amazon EC2-Benutzerhandbuch.

Szenario 1: Spot-Instance ohne ausgeführte Aufgaben wird unterbrochen

Wenn diese Unterbrechung auftritt, AWS ParallelCluster versucht, die Instance zu ersetzen, wenn die Scheduler-Warteschlange ausstehende Jobs hat, für die zusätzliche Instances erforderlich sind, oder wenn die Anzahl der aktiven Instances niedriger ist als die initial_queue_size Einstellung. Wenn keine neuen Instances bereitgestellt werden AWS ParallelCluster können, wird eine Anforderung für neue Instances regelmäßig wiederholt.

Szenario 2: Spot-Instance mit Einzelknotenaufgaben wird unterbrochen

Das Verhalten dieser Unterbrechung hängt vom verwendeten Scheduler ab.

Slurm

Der Job schlägt fehl, wenn der Statuscode lautetNODE_FAIL, und der Job wird erneut in die Warteschlange gestellt (es sei denn, dies --no-requeue wird bei der Übermittlung des Jobs angegeben). Wenn der Knoten ein statischer Knoten ist, wird er ersetzt. Wenn der Knoten ein dynamischer Knoten ist, wird der Knoten beendet und zurückgesetzt. Weitere Informationen dazusbatch, einschließlich des --no-requeue Parameters, finden Sie sbatch in der Slurm-Dokumentation.

Anmerkung

Dieses Verhalten hat sich in AWS ParallelCluster Version 2.9.0 geändert. In früheren Versionen wurde der Job mit dem Statuscode beendet NODE_FAIL und der Knoten wurde aus der Scheduler-Warteschlange entfernt.

SGE
Anmerkung

Dies gilt nur für AWS ParallelCluster Versionen bis einschließlich Version 2.11.4. Ab Version 2.11.5 wird die Verwendung von oder AWS ParallelCluster Schedulern nicht unterstützt. SGE Torque

Die Aufgabe wird beendet. Wenn für die Aufgabe die Markierung für erneute Ausführung aktiviert ist, (entweder mit qsub -r yes oder qalter -r yes) oder bei der Warteschlange die rerun-Konfiguration auf „TRUE“ festgelegt ist, wird die Aufgabe neu geplant. Die Datenverarbeitungs-Instance wird aus der Scheduler-Warteschlange entfernt. Dieses Verhalten stammt von den folgenden SGE-Konfigurationsparametern:

  • reschedule_unknown 00:00:30

  • ENABLE_FORCED_QDEL_IF_UNKNOWN

  • ENABLE_RESCHEDULE_KILL=1

Torque
Anmerkung

Dies gilt nur für AWS ParallelCluster Versionen bis einschließlich Version 2.11.4. Ab Version 2.11.5 wird die Verwendung von oder AWS ParallelCluster Schedulern nicht unterstützt. SGE Torque

Die Aufgabe wird aus dem System und der Knoten aus dem Scheduler entfernt. Der Job wird nicht erneut ausgeführt. Wenn mehrere Jobs auf der Instance ausgeführt werden, während sie unterbrochen wird, kann es vorkommen, dass Torque während des Entfernens des Knotens eine Zeitüberschreitung verursacht. In der sqswatcher Protokolldatei wird möglicherweise ein Fehler angezeigt. Dies wirkt sich nicht auf die Skalierungslogik aus, und bei nachfolgenden Wiederholungsversuchen wird eine ordnungsgemäße Bereinigung durchgeführt.

Szenario 3: Spot-Instance, auf der Aufgaben mit mehreren Knoten ausgeführt werden, wird unterbrochen

Das Verhalten dieser Unterbrechung hängt vom verwendeten Scheduler ab.

Slurm

Der Auftrag schlägt fehl, wenn der Statuscode lautetNODE_FAIL, und der Auftrag wird erneut in die Warteschlange gestellt (sofern nicht --no-requeue beim Senden des Jobs angegeben). Wenn der Knoten ein statischer Knoten ist, wird er ersetzt. Wenn der Knoten ein dynamischer Knoten ist, wird der Knoten beendet und zurückgesetzt. Andere Knoten, auf denen die beendeten Jobs ausgeführt wurden, werden möglicherweise anderen ausstehenden Aufträgen zugewiesen oder nach Ablauf der konfigurierten scaledown_idletime Zeit herunterskaliert.

Anmerkung

Dieses Verhalten hat sich in AWS ParallelCluster Version 2.9.0 geändert. In früheren Versionen wurde der Job mit dem Statuscode beendet NODE_FAIL und der Knoten wurde aus der Scheduler-Warteschlange entfernt. Andere Knoten, auf denen die beendeten Jobs ausgeführt wurden, wurden möglicherweise herunterskaliert, nachdem die konfigurierte scaledown_idletime Zeit abgelaufen ist.

SGE
Anmerkung

Dies gilt nur für AWS ParallelCluster Versionen bis einschließlich Version 2.11.4. Ab Version 2.11.5 wird die Verwendung von oder AWS ParallelCluster Schedulern nicht unterstützt. SGE Torque

Der Job wird nicht beendet und läuft weiterhin auf den verbleibenden Knoten. Der Datenverarbeitungsknoten wird aus der Scheduler-Warteschlange entfernt, aber in der Hosts-Liste als verwaister und nicht verfügbarer Knoten angezeigt.

Der Benutzer muss die Aufgabe löschen, wenn dies geschieht (qdel <jobid>). Der Knoten wird weiterhin in der Hostliste (qhost) angezeigt, obwohl dies keine Auswirkungen hat AWS ParallelCluster. Um den Host aus der Liste zu entfernen, führen Sie nach dem Ersetzen der Instanz den folgenden Befehl aus.

sudo -- bash -c 'source /etc/profile.d/sge.sh; qconf -dattr hostgroup hostlist <hostname> @allhosts; qconf -de <hostname>'
Torque
Anmerkung

Dies gilt nur für AWS ParallelCluster Versionen bis einschließlich Version 2.11.4. Ab Version 2.11.5 wird die Verwendung von oder AWS ParallelCluster Schedulern nicht unterstützt. SGE Torque

Die Aufgabe wird aus dem System und der Knoten aus dem Scheduler entfernt. Der Job wird nicht erneut ausgeführt. Wenn mehrere Jobs auf der Instance ausgeführt werden, während sie unterbrochen wird, kann es vorkommen, dass Torque während des Entfernens des Knotens ein Timeout verursacht. In der sqswatcher Protokolldatei wird möglicherweise ein Fehler angezeigt. Dies wirkt sich nicht auf die Skalierungslogik aus, und bei nachfolgenden Wiederholungsversuchen wird eine ordnungsgemäße Bereinigung durchgeführt.

Weitere Informationen zu Spot-Instances finden Sie unter Spot-Instances im Amazon EC2-Benutzerhandbuch.