AMP Engine: Bewährte Vorgehensweisen
In diesem Dokument werden Fragen zur neuen AMP Engine beantwortet. Das Dokument richtet sich sowohl an bestehende Administratoren als auch an neue Benutzer.
Weitere Informationen zur AMP Engine finden Sie auf den Hilfeseiten Alteryx AMP Engine und Engine .
Weitere Informationen zu den Systemanforderungen für Server finden Sie auf der Hilfeseite Systemanforderungen .
Allgemeine Themen
In den meisten Anwendungsfällen bietet die AMP Engine erhebliche Leistungs- und Effizienzverbesserungen gegenüber der Original-Engine, wenn ausreichende Systemressourcen bereitstehen. Weitere Informationen zu den Anforderungen und Empfehlungen für Systemressourcen finden Sie in den Abschnitten Wie verwalte ich Systemressourcen mit AMP? und Welche Systemanforderungen gelten für die AMP Engine? .
AMP ist für die Verarbeitung größerer Datenmengen mit höherer Geschwindigkeit ausgelegt und führt Workflows im Vergleich zur Original-Engine in der Regel schneller und mit effizienterer Nutzung der Rechnerressourcen aus.
Die Original-Engine-Architektur ermöglicht meist eine Single-Threaded-Verarbeitung, bei der Ihre Daten Datensatz für Datensatz sequentiell verarbeitet werden. Im Gegensatz dazu ermöglicht das neue AMP-Konzept eine massive Multithreading-Verarbeitung. AMP verarbeitet Datensätze in Paketen, um die Laufzeiten zu verbessern, und Tools können parallel ausgeführt werden. AMP verwendet auch leistungsfähigere Algorithmen beim Gruppieren und Sortieren von Datensätzen, was sich auf die Reihenfolge der Ausgabedatensätze auswirken kann.
Im Artikel Workflows mit AMP optimieren werden einige der Leistungsvorteile der Verwendung der AMP Engine beschrieben:
Die meistgenutzten Tools laufen am besten über AMP.
Der Vorteil von AMP steigt in der Regel mit zunehmender Datengröße.
Die Leistung variiert je nach Datengröße, zugrundeliegender Hardware, Rechenzentrum und Netzwerkinfrastruktur, Alteryx Server-Konfiguration und Workflow-Aufbau.
Benchmark-Ergebnisse
Anmerkung
Wir haben die folgenden Messungen für das Benchmarking verwendet:
Workflow-Durchsatz = (Workflows/Laufzeit). Laufzeit ist die Gesamtzeit für die Ausführung eines Workflows.
Engine-Durchsatz = (Workflows / engine_runtime). Engine_runtime ist die Zeit, in der die Engine einen Workflow ausführt.
Workflows = Anzahl der Workflows.
Wenn nur ein Workflow vorhanden ist, gibt es keinen signifikanten Zeitunterschied zwischen dem Engine-Durchsatz und dem Workflow-Durchsatz. Wenn sich zwei Workflows in einer Warteschlange mit nur einem Worker befinden, wirkt sich die Laufzeit des ersten Workflows auf die Laufzeit des zweiten Workflows aus.
Benchmark-Ergebnisse für eine typische Aufgabe zur Datenvorbereitung
Benchmark-Ergebnisse für eine typische CPU-lastige Predictive- oder Machine Learning-Aufgabe
Weitere Informationen finden Sie unter den Dokumentationslinks am Ende dieses Dokuments.
AMP ist in Designer standardmäßig für neue Workflows aktiviert. Bei neuen Server-Installationen oder neuen Workern auf vorhandenen Servern ist die Ausführung von AMP und Original-Engine standardmäßig zulässig. Die Workflow-Einstellungen bestimmen, welche Engine verwendet wird.
1. Controller > General > Enable AMP Engine (Allgemein, AMP Engine aktivieren)
1. Notieren Sie sich vor der Aktualisierung Ihre aktuellen Einstellungen.
2. Stellen Sie nach der Aktualisierung die Auswahl auf den gewünschten Wert wieder her.
2. Worker > General > Allow Server to manage workflows running simultaneously
1. Notieren Sie sich vor der Aktualisierung die „Zulässige Anzahl simultan laufender Workflows“.
2. Deaktivieren Sie nach der Aktualisierung die Option Allow Server to manage workflows running simultaneously .
3. Geben Sie die Nummer ein, die Sie für „Zulässige Anzahl simultan laufender Workflows“ gespeichert haben.
3. Engine > General > Engine
1. Notieren Sie sich vor der Aktualisierung Ihre aktuellen Einstellungen.
2. Stellen Sie nach der Aktualisierung die Auswahl auf den gewünschten Wert wieder her.
4. Engine > General > Run engine at a lower priority (Engine mit niedrigerer Priorität ausführen)
1. Notieren Sie sich vor der Aktualisierung Ihre aktuellen Einstellungen.
2. Stellen Sie nach der Aktualisierung die Auswahl auf den gewünschten Wert wieder her.
Wir empfehlen Ihnen, die neuen Optionen Allow Server to manage workflows running simultaneously und Allow Server to manage engine resources zu verwenden. Wir haben die Logik hinzugefügt, damit jede Engine-Instanz innerhalb der in den Systemeinstellungen definierten Speicher- und logischen CPU-Beschränkungen arbeitet. Admins müssen darauf achten, dass sie nicht zu viel zuweisen, wenn sie diese Werte manuell festlegen, anstatt sie von Server verwalten zu lassen.
Berechnungen
Wenn Sie die Optionen Allow Server to manage workflows running simultaneously und Allow Server to manage engine resources aktivieren, berechnet Server die Anzahl gleichzeitiger Aufträge sowie die CPU-Threads (Kerne) und den Speicherplatz, der pro Auftrag beim Starten des Dienstes zugewiesen werden soll. Diese Berechnungen basieren auf den insgesamt verfügbaren logischen CPU-Kernen und den gesamten Systemspeicherressourcen auf dem Hostrechner. Sie sind außerdem darauf ausgelegt, die AMP-Leistung für die verfügbare Hardware basierend auf unseren Benchmarking-Ergebnissen zu optimieren. Die Formeln für diese Berechnungen lauten wie folgt:
Anmerkung
Gleichzeitige Aufträge
Anzahl gleichzeitiger Aufträge = min(Floor(logische Prozessoren / 8), (Floor(Gesamtspeicher / 8000) - 2))
Speicherlimit
Speicherlimit = Floor(Gesamtspeicher / (Anzahl gleichzeitiger Aufträge + 2))
Verarbeitungsthreads
Threads = Floor(gesamte logische Prozessoren / Anzahl gleichzeitiger Aufträge)
Empfehlungen für die manuelle Werteinstellung
Wir empfehlen Ihnen, diese Richtlinien für eine optimale Leistung zu befolgen, wenn Sie diese Werte manuell festlegen:
Memory per running workflow : 8 GB pro Workflow sind die Mindestempfehlung für eine optimale Leistung mit AMP.
CPU per running workflow : gleichzeitig laufender Workflow pro 6–8 logische CPU-Kerne.
Maximum number of AMP engines run in parallel : Dies ist vollständig hardwareabhängig. Theoretisch könnten Sie 16 AMP- oder gemischte AMP- und Original-Engine-Aufträge gleichzeitig ausführen, wenn Sie einen Worker mit 128 logischen Kernen und 160 GB RAM haben. Allerdings ist es an diesem Punkt wahrscheinlicher, dass Festplatten-E/A und Netzwerkbandbreite der Engpass sind. Sowohl die Original-Engine- als auch die AMP-Leistung sind durch Festplatten-E/A und Netzwerkbandbreite in Abhängigkeit von der Größe und dem Herkunfts- und Ausgabeort der Daten begrenzt.
Max. Anzahl von AMP Engines, die gleichzeitig mit E1 ausgeführt werden : Server unterscheidet nicht zwischen einem AMP Engine- und einem Original-Engine-Auftrag. Server sendet den Workflow einfach an die Engine, und die Engine bestimmt, ob er über AMP oder Original-Engine ausgeführt werden muss. Daher geht Server davon aus, dass alle Aufträge AMP-Aufträge sind, wenn die AMP Engine aktiviert ist.
Wir empfehlen Ihnen, den Arbeitsspeicher in Höhe von einem Auftrag für das Betriebssystem und einen weiteren Auftrag zu reservieren, um negative Auswirkungen zu vermeiden, wenn Sie einen Workflow manuell von Designer auf Server ausführen. Unsere Formeln zur Berechnung der Ressourcen berücksichtigen diese Empfehlungen bereits.
Die neuesten Server-Systemanforderungen finden Sie auf der Hilfeseite Server: Systemanforderungen . Wir haben unsere Empfehlungen in zwei Kategorien unterteilt: Mindestanforderungen an die Hardware und Empfohlene Hardware für optimale Leistung .
Mindestanforderungen an die Hardware
Die Hardware-Mindestanforderungen für Server sind definiert als die Mindestanforderungen an die Hardware, die für den Betrieb einer stabilen Installation von Alteryx Server erforderlich sind. Wenn Sie die Mindestanforderungen nicht erfüllen, riskieren Sie eine mangelhafte Leistung und einen zufallsbedingten Dienstabbruch auf jedem Knoten, auf dem die Engine läuft.
Für die gewünschte Anzahl gleichzeitiger Workflows werden die folgenden Hardware-Mindestanforderungen empfohlen:
Anmerkung
Die grün hervorgehobene Zeile ist die empfohlene Mindestkonfiguration. Die Zeile mit den Informationen für einen gleichzeitigen Workflow gibt Aufschluss darüber, wie die Ressourcen erhöht werden müssen, wenn Sie der vorhandenen Konfiguration einen zusätzlichen Auftrag hinzufügen möchten.
Empfohlene Hardware für optimale Leistung
Die Empfehlungen für optimale Server-Hardwareleistung beziehen sich auf den Optimalzustand der Hardware, bei dem Server die Workflows bei Nutzung der AMP Engine so effizient wie möglich ausführen kann. Dies ist nützlich, um Engpässe auf ausgelasteten Systemen zu beseitigen und die AMP Engine-Leistung und den Durchsatz zu optimieren.
Wir empfehlen die folgenden Hardwareeinstellungen für eine optimale Leistung:
Anmerkung
*Bei logischen Kernen handelt es sich entweder um vCPUs oder um logische Kerne innerhalb eines physischen Kerns. Durch den standardmäßigen Bezug auf logische Kerne können sowohl physische On-Premises-Server als auch virtuelle Server in der Cloud konsistent verglichen werden.
Vor 2022.1 war AMP auf Server verfügbar, aber standardmäßig deaktiviert.
Ab Version 2022.1 sind Controller und Worker bei neuen Server-Installationen standardmäßig so eingestellt, dass sowohl die Ausführung von AMP als auch die Ausführung der Original-Engine zulässig sind. Für bestehende Server ändern sich die vorhandenen Controller- und Worker-Einstellungen möglicherweise und für neue Worker ist sowohl die Ausführung mit AMP als auch mit der Original-Engine standardmäßig aktiviert. Wenn Sie dies vermeiden möchten, lesen Sie unseren Hinweis zur Beibehaltung der aktuellen Einstellungen.
Die Einstellungen für die Aktivierung der AMP Engine sowohl für Controller- als auch Worker-Knoten sind in den Alteryx-Systemeinstellungen verfügbar. Es gibt jetzt zusätzliche Einstellungen für die Verwaltung der Hardwarezuordnungen für jede Engine. Außerdem gibt es eine empfohlene Einstellung, um die Allow Server to Manage Engine Resources .
Systemeinstellungen für vorhandene Server-Installationen:
Controller > General > Enable AMP Engine : Wenn Sie diesen Wert jemals geändert haben, unabhängig davon, in welchen Wert Sie ihn geändert haben, bleibt dieser Wert auch nach der Aktualisierung erhalten. Wenn Sie diese Einstellung nie geändert und den Standardstatus immer deaktiviert gelassen haben, ist das Kontrollkästchen jetzt aktiviert, was bedeutet, dass AMP standardmäßig aktiviert ist.
Worker > General > Allow Server to manage workflows running simultaneously wird standardmäßig für alle Worker auf True gesetzt. Wenn diese Einstellung auf „True“ gesetzt ist, können Sie die Anzahl der Worker, die gleichzeitig ausgeführt werden dürfen, nicht festlegen.
Workers allowed to run simultaneously wird beim Dienststart automatisch auf der Grundlage der verfügbaren CPU und des Arbeitsspeichers in der Server-Umgebung berechnet.
Engine > Allgemein > Engine : Wenn der Kunde diesen Wert jemals geändert hat, unabhängig davon, in welchen Wert er ihn geändert hat, bleibt dieser Wert nach dem Upgrade erhalten. Wenn diese Einstellung nie geändert wurde und immer die Standardoption „Original-Engine" verwendet wurde, wird die neue Standardeinstellung auf „Both Engines" gesetzt.
Engine > Allgemein > Allow Server to manage engine resources ist eine neue Einstellung, die standardmäßig auf False eingestellt ist.
Die Formel Engine > Allgemein > Memory Limit zur Berechnung des Standardwerts wurde geändert.
Die Formel Engine > Allgemein > Default number of processing threads zur Berechnung des Standardwerts wurde geändert.
Engine > Allgemein > Run engine at a lower priority : Wenn der Kunde diesen Wert jemals geändert hat, egal zu welchem Wert, bleibt dieser Wert nach dem Upgrade erhalten. Wenn der Standardwert immer auf „False“ gesetzt war, wird nach der Aktualisierung der neue Standardwert auf True gesetzt.
Systemeinstellungen für neue Server-Installationen:
Der Standardwert für das Kontrollkästchen Controller > Allgemein > Enable AMP Engine ist True .
Worker > General > Allow Server to manage workflows running simultaneously wird standardmäßig für alle Worker auf True gesetzt.
Workers allowed to run simultaneously wird beim Dienststart automatisch auf der Grundlage der verfügbaren CPU und des Arbeitsspeichers in der Server-Umgebung berechnet.
Der Standardwert in der Dropdown-Liste Engine > Allgemein > Engine ist Both Engines .
Engine > Allgemein > Allow Server to manage engine resources ist standardmäßig auf False eingestellt ist.
Die Formel Engine > Allgemein > Memory Limit zur Berechnung des Standardwerts wurde geändert.
Die Formel Engine > Allgemein > Default number of processing threads zur Berechnung des Standardwerts wurde geändert.
Der Standardwert für Engine > Allgemein > Run Engine at a lower priority lautet True .
Können Benutzer die Einstellungen wieder zurückstellen (d. h. AMP in Server deaktivieren)?
Wenn der Administrator die AMP Engine nicht verwenden möchte, muss er sie manuell deaktivieren. Die folgende Abbildung zeigt die Einstellung „Engine“ im Abschnitt Controller General Configuration der Systemeinstellungen.
Wenn der Administrator AMP auf einigen Worker-Knoten deaktivieren möchte, kann dies im Abschnitt Engine-Configuration der Systemeinstellungen erfolgen. Siehe Dropdown-Einstellung „Engine“ weiter unten. In der Abbildung unten ist die Einstellung auf Both Engines gesetzt, kann aber auf Original-Engine geändert werden. Both Engines ist die Standardeinstellung in einer neuen Server-Umgebung.
Es gibt keine separate Speicherbegrenzung. In den Systemeinstellungen bezieht sich das Feld Engine > Allgemein > Memory Limit auf die Engine. Es gilt sowohl für Designer als auch für Server – im Grunde für jeden Ort, an dem die Engine ausgeführt wird.
Designer führt nur jeweils einen Workflow aus, sodass die Einschränkungen unterschiedlich und toleranter sind.
Im System ist AMP automatisch aktiviert und alle relevanten Einstellungen sind standardmäßig konfiguriert. Sie müssen nur dann Änderungen vornehmen, wenn sie AMP deaktivieren möchten. Lesen Sie die Antworten unter Welche Änderungen wurden in Designer und Server vorgenommen? .
Befolgen Sie die Richtlinien für die Hardware-Mindestanforderungen , um optimale Leistung und Stabilität zu gewährleisten.
Führt das Aktivieren von AMP in Server dazu, dass meine bestehenden Workflows fehlschlagen?
Nein, sie laufen genauso wie zuvor.
Ändert sich etwas an der Ausführung meiner bestehenden Workflows, wenn ich die Ausführung von AMP Engine und Original-Engine auf Server zulasse?
Wenn ein Workflow in Designer gespeichert wird, ist die Option der Laufzeiteinstellung auf „AMP Engine verwenden“ festgelegt oder nicht. Welche Option in Designer gespeichert ist, wird bei der Ausführung in Server berücksichtigt. Server wird die Engine-Option des Workflows niemals außer Kraft setzen. Daher führt das Zulassen der Ausführung sowohl von AMP als auch der Original-Engine auf Server nicht dazu, dass Workflows, die als Original-Engine gespeichert wurden, mit der AMP-Engine ausgeführt werden. Wenn ein Workflow mit AMP als Engine-Option gespeichert wird und AMP in Server nicht aktiviert ist, wird der Workflow NICHT mit der Original-Engine ausgeführt und schlägt fehl.
Damit ein Workflow, der zuvor mit Option „Original-Engine“ gespeichert wurde, mit AMP ausgeführt werden kann, muss der Workflow in Designer erneut gespeichert werden, wobei die Einstellung AMP Engine verwenden ausgewählt sein muss.
Die Ausführung von Workflows mit AMP kann sich auf die Reihenfolge der resultierenden Ausgabezeilen auswirken, da einige Dinge nun parallel ausgeführt werden. Denken Sie daran und überprüfen Sie, ob Ihre Prozesse von der Ausgabereihenfolge abhängig sind. Wenn dies der Fall ist, können Sie an Ihren Workflows Anpassungen vornehmen, um sicherzustellen, dass die Reihenfolge der Original-Engine beibehalten wird.
Sie können mit Änderungen in der Laufzeit der einzelnen Workflows rechnen.
Im Allgemeinen werden AMP-Workflow-Aufträge mit der richtigen Anzahl von Verarbeitungskernen deutlich schneller ausgeführt.
In einigen Fällen können AMP-Aufträge mehr Zeit in Anspruch nehmen als Original-Engine-Aufträge, insbesondere wenn die Workflows CPU-intensiv sind und die Anzahl der Threads pro Workflow gering ist.
Obwohl Ihre Workflows im Allgemeinen schneller abgeschlossen werden, kann die Ausführung eines Nicht-AMP-Workflows etwas länger dauern, da ein konkurrierender AMP-Workflow einige Ressourcen beansprucht. Es ändert jedoch nichts an der Quality of Service (QoS, Dienstgüte) und einige Workflows können schneller ausgeführt werden. QoS funktioniert weiterhin auf die gleiche Weise wie immer.
Können Benutzer dies tun, wenn AMP aktiviert ist?
Die Zeit bis zur Fertigstellung sollte mit wenigen Ausnahmen durchweg besser sein.
Wenn durch die Aktivierung von AMP die Garantie für einheitliche Laufzeiten verloren geht, sollen wir Benutzern mit diesem Anwendungsfall dann raten, AMP zu deaktivieren?
Bei ordnungsgemäßer Ressourcenzuweisung sollten sowohl AMP- als auch Original-Engine-Workflows vorhersehbar sein (vorhersehbar im Rahmen der Verwendung einer neuen Baseline, statt nur der Verlaufsergebnisse der Original-Engine-Leistung). Unvorhersehbar wird es nur dann, wenn die Hardwareressourcen eines Workers nicht ausreichend zugewiesen sind (Original-Engine und AMP konkurrieren um Ressourcen).
Es ist möglich, den Workflow mit aktiviertem AMP auf Server zu speichern und dann eine Kopie davon mit deaktiviertem AMP zu speichern. Führen Sie dann jeden Workflow einige Male aus, um zu sehen, welcher besser funktioniert. Beachten Sie auch, dass AMP-Workflows in der Regel schneller laufen, wenn sie gleichzeitig mit anderen AMP-Workflows ausgeführt werden.
Bedenken zur Dienstgüte (QoS)
Die Engine-Konfiguration Memory Limit gilt für die Engine, unabhängig davon, ob es sich um die Original-Engine oder AMP handelt. Der Unterschied besteht darin, wie die einzelnen Engines mit dem Speicherlimit arbeiten:
Die Original-Engine weist das gesamte Limit vorab zu.
AMP weist den benötigten Arbeitsspeicher bis zum Speicherlimit zu.
Ressourcen werden effizienter genutzt. Die Original-Engine ist nur begrenzt Multi-Threading-fähig. AMP kann serielle Aufträge wesentlich effektiver ausführen. Die Vorteile liegen im Gesamtdurchsatz, der mit AMP höher ist als bei der Verwendung der Original-Engine.
Server kann nun Ihre Hardware analysieren und die entsprechenden Ressourcen pro Engine zuweisen. Es handelt sich zwar nicht um einen Ressourcenmanager wie bei einem Betriebssystem, aber mit dieser neuen Eigenschaft haben wir die Möglichkeit geschaffen, dass Server Ihre Ressourcen verwalten kann.
Die Anzahl der Aufträge, die gleichzeitig ausgeführt werden können, wird auf der Grundlage der verfügbaren Hardwareressourcen automatisch zugewiesen, wenn der Administrator dies so konfiguriert. Weitere Informationen zur Worker-Konfiguration finden Sie auf der Hilfeseite zu Worker .
Nein, Ressourcen werden pro Engine-Auftrag zugewiesen. Jedem Auftrag stehen eigene Ressourcen zur Verfügung, was bedeutet, dass es keine Ressourcenkonflikte zwischen den Aufträgen geben sollte.
AMP-Artikel
Webinar zu AMP Engine (32 Minuten)
Alteryx Engine und AMP: Hauptunterschiede
Analyseprozesse mit der neuen AMP Engine beschleunigen
Die Alteryx AMP Engine: Erklärt
Detaillierte technische Analyse der AMP Engine | Teil 1 | Warum AMP?
Detaillierte technische Analyse der AMP Engine | Teil 2 | Schlüsselkonzepte der AMP Engine