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 in der Cluster-Konfiguration auf cluster_type = Spot gesetzt wurde. Spot-Instances sind kostengünstiger als On-Demand-Instances, sie können jedoch unterbrochen werden. Die Auswirkung der Unterbrechung hängt vom jeweils verwendeten Scheduler ab. Es kann hilfreich sein, die Unterbrechungsbenachrichtigungen für Spot-Instances zu nutzen, die eine zweiminütige Warnung enthalten, bevor Amazon Ihre Spot-Instance stoppen oder beenden EC2 muss. Weitere Informationen finden Sie unter Spot-Instance-Unterbrechungen im EC2 Amazon-Benutzerhandbuch. In den folgenden Abschnitten werden drei Szenarien beschrieben, in denen Spot-Instances unterbrochen werden können.

Anmerkung

Die Verwendung von Spot-Instances setzt voraus, dass die mit dem AWSServiceRoleForEC2Spot Service verknüpfte Rolle in Ihrem Konto vorhanden ist. 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-verknüpfte Rolle für Spot-Instance-Anfragen im EC2 Amazon-Benutzerhandbuch.

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

Wenn diese Unterbrechung auftritt, wird AWS ParallelCluster versucht, die Instance zu ersetzen, falls die Scheduler-Warteschlange ausstehende Jobs enthält, für die zusätzliche Instances erforderlich sind, oder wenn die Anzahl der aktiven Instances unter der initial_queue_size Einstellung liegt. Wenn keine neuen Instanzen bereitgestellt werden AWS ParallelCluster können, wird eine Anfrage für neue Instanzen 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 mit dem Statuscode von NODE_FAIL fehl und der Job wird in eine Warteschlange gestellt (sofern dies nicht --no-requeue beim Absenden des Jobs angegeben wurde). Wenn es sich bei dem Knoten um einen statischen Knoten handelt, wird er ersetzt. Wenn der Knoten ein dynamischer Knoten ist, wird der Knoten beendet und zurückgesetzt. Weitere Hinweise zu sbatch und einschließlich des --no-requeue Parameters finden Sie unter sbatchin der Slurm-Dokumentation.

Anmerkung

Dieses Verhalten hat sich in AWS ParallelCluster Version 2.9.0 geändert. Frühere Versionen haben den Job mit dem Statuscode von 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 AWS ParallelCluster nicht unterstützt SGE or Torque Scheduler.

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 AWS ParallelCluster nicht unterstützt SGE or Torque Scheduler.

Die Aufgabe wird aus dem System und der Knoten aus dem Scheduler entfernt. Der Job wird nicht wiederholt. Wenn mehrere Jobs auf der Instanz ausgeführt werden, während sie unterbrochen wird, kann es bei Torque beim Entfernen des Knotens zu einem Timeout kommen. In der sqswatcher Protokolldatei wird möglicherweise ein Fehler angezeigt. Dies hat keinen Einfluss auf die Skalierungslogik, 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 Job schlägt mit dem Statuscode von fehlNODE_FAIL, und der Job wird in die Warteschlange gestellt (es sei denn, dies --no-requeue wurde bei der Übermittlung des Jobs angegeben). Wenn es sich bei dem Knoten um einen statischen Knoten handelt, 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, wurden möglicherweise anderen ausstehenden Jobs zugewiesen oder nach Ablauf der konfigurierten scaledown_idletime Zeit herunterskaliert.

Anmerkung

Dieses Verhalten hat sich in AWS ParallelCluster Version 2.9.0 geändert. Frühere Versionen haben den Job mit dem Statuscode von 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 nach Ablauf der konfigurierten scaledown_idletime Zeit herunterskaliert.

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 AWS ParallelCluster nicht unterstützt SGE or Torque Scheduler.

Der Job wurde 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 AWS ParallelCluster nicht unterstützt SGE or Torque Scheduler.

Die Aufgabe wird aus dem System und der Knoten aus dem Scheduler entfernt. Der Job wird nicht wiederholt. Wenn mehrere Jobs auf der Instanz ausgeführt werden, während sie unterbrochen wird, kann es bei Torque beim Entfernen des Knotens zu einem Timeout kommen. In der sqswatcher Protokolldatei wird möglicherweise ein Fehler angezeigt. Dies hat keinen Einfluss auf die Skalierungslogik, und bei nachfolgenden Wiederholungsversuchen wird eine ordnungsgemäße Bereinigung durchgeführt.

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