Best practice di AMP Engine
L'obiettivo di questo documento è rispondere alle domande relative al nuovo AMP Engine. Il documento è destinato ad amministratori esistenti e a nuovi utenti.
Per ulteriori informazioni su AMP Engine, consulta le pagine di assistenza Alteryx AMP Engine e Engine .
Per ulteriori informazioni sui requisiti di sistema di Server, consulta la pagina di assistenza Requisiti di sistema .
Argomenti generali
Per la maggior parte dei casi di utilizzo, AMP Engine offre miglioramenti significativi in termini di prestazioni ed efficienza rispetto all'engine originale, se supportato da risorse di sistema sufficienti. Per ulteriori informazioni sui requisiti delle risorse di sistema ed eventuali suggerimenti, consulta le sezioni Come gestire le risorse di sistema con AMP? e Quali sono i requisiti di sistema di AMP Engine? .
AMP è progettato per funzionare con volumi di dati più grandi a velocità più elevata e in genere esegue i flussi di lavoro più rapidamente, sfruttando in modo più completo le risorse del computer rispetto all'engine originale.
L'architettura dell'engine originale consente principalmente l'elaborazione a thread singolo, in cui i dati vengono elaborati record per record in sequenza. D'altra parte, il nuovo concetto AMP consente un'elaborazione massicciamente multi-thread. AMP elabora i record in pacchetti per migliorare i tempi di esecuzione e permette di eseguire gli strumenti in parallelo. AMP utilizza anche algoritmi più efficienti per il raggruppamento e l'ordinamento dei record, che possono influire sull'ordine dei record di output.
L'articolo AMPlificazione dei flussi di lavoro descrive alcuni dei vantaggi dell'uso di AMP Engine in termini di prestazioni:
Gli strumenti più comunemente utilizzati offrono le migliori prestazioni su AMP.
In genere, il vantaggio di AMP aumenta in proporzione alle dimensioni dei dati.
Le prestazioni variano in base alle dimensioni dei dati, all'hardware sottostante, all'infrastruttura del data center e della rete, alla configurazione di Alteryx Server e alla costruzione del flusso di lavoro.
AMP è attivo in Designer per impostazione predefinita per i nuovi flussi di lavoro. Per le nuove installazioni di Server o i nuovi worker sulle installazioni Server esistenti, l'impostazione predefinita prevede l'esecuzione di AMP Engine e dell'engine originale. Le impostazioni del flusso di lavoro determinano l'engine utilizzato.
Nota
When you upgrade to Server version 2022.1, we recommend validating your engine choice settings and resource allocations. The new 'Allow Server to manage workflows running simultaneously' functionality, and the change to enable AMP by default, can result in settings changing in your environment.
If you have an existing Server and want to maintain your current system settings, please read these instructions before upgrading.
1. Controller > Generale > Abilita AMP Engine
Before upgrading, note your current settings.
After upgrading, restore the selection to your desired value.
2. Worker > Generale > Consenti a Server di gestire i flussi di lavoro eseguiti contemporaneamente .
Before upgrading, note the number set for ‘workflows allowed to run simultaneously’.
After upgrading, deselect Allow Server to manage workflows running simultaneously.
Input the number you saved for ‘workflows allowed to run simultaneously’.
3. Engine > Generale > Engine
Before upgrading, note your current settings.
After upgrading, restore the selection to your desired value.
4. Engine > Generale > Esegui engine con priorità più bassa .
Before upgrading, note your current settings.
After upgrading, restore the selection to your desired value.
Consigliamo di utilizzare le nuove opzioni Consenti a Server di gestire i flussi di lavoro eseguiti contemporaneamente e Consenti a Server di gestire le risorse dell'engine . La logica aggiunta consente ad ogni istanza dell'engine di operare nei limiti di memoria e CPU logica definiti in Impostazioni di sistema . Gli amministratori devono evitare allocazioni in eccesso se impostano questi valori manualmente anziché tramite Server.
Calcoli
Quando attivi le opzioni Consenti a Server di gestire i flussi di lavoro eseguiti contemporaneamente e Consenti a Server di gestire le risorse dell'engine , Server calcola il numero di processi simultanei, nonché i thread (core) della CPU e la quantità di memoria da allocare per ogni processo all'avvio del servizio. Questi calcoli si basano sul totale di core logici della CPU disponibili e sulle risorse di memoria di sistema totali sul computer host. Sono inoltre progettati per ottimizzare le prestazioni AMP per l'hardware disponibile in base ai risultati dell'analisi comparativa. Di seguito sono riportate le formule per tali calcoli:
Calculation Formulas
Processi simultanei
numero di processi simultanei = min(floor(logical processors / 8), (floor(total memory / 8000) - 2))
Limite di memoria
limite di memoria = floor(total memory / (number of simultaneous jobs +2))
For Server machines that act as both a worker and a controller with the embedded MongoDB, the Memory Limit (MB) is automatically calculated based on this formula:
(((Total Physical RAM/2) - 4096) / Number of Simultaneous Jobs)
For standalone workers, more memory is allocated to run workflows based on this formula:
(Total Physical RAM / (Number of Simultaneous Jobs +2))
If the formulas result in less than 2 GB, set the Memory Limit to the minimum of 2 GB to ensure the engine is able to execute.
Elaborazione dei thread
thread = floor(total logical processors / number of simultaneous jobs)
Suggerimenti per l'impostazione manuale dei valori
Consigliamo di seguire queste linee guida per ottenere prestazioni ottimali durante l'impostazione manuale di questi valori:
Memoria per flusso di lavoro in esecuzione : 8 GB per flusso di lavoro è il valore minimo consigliato per ottenere prestazioni ottimali con AMP.
CPU per flusso di lavoro in esecuzione : 1 flusso di lavoro in esecuzione simultanea per 6-8 core logici della CPU.
Number of physical cores per node: For optimal performance, we recommend 8 physical cores per node and horizontal scaling to additional nodes. Typically, this means 4 simultaneous running workflows per node.
Numero massimo di AMP Engine eseguiti in parallelo : dipende interamente dall'hardware. In teoria, potresti eseguire contemporaneamente 16 processi solo su AMP oppure su AMP e sull'engine originale se disponi di un worker con 128 core logici e 160 GB di RAM. Tuttavia, in questo caso aumenterebbe la probabilità di creare colli di bottiglia a livello di I/O del disco e di larghezza di banda della rete. Le prestazioni dell'engine originale e di AMP saranno limitate dall'I/O del disco e dalla larghezza di banda della rete, a seconda delle dimensioni dei dati e della loro provenienza e destinazione.
Numero massimo di AMP Engine in esecuzione contemporaneamente a E1 : Server non distingue i processi di AMP Engine e di un engine originale. Server si limita a inviare il flusso di lavoro a engine, che determina se deve essere eseguito tramite AMP o tramite l'engine originale. Pertanto, Server presuppone che tutti i processi siano AMP se AMP Engine è attivato.
Ti consigliamo di riservare una quantità di memoria sufficiente per 1 processo per il sistema operativo e un'ulteriore quantità per un altro processo per evitare conseguenze negative se esegui manualmente un flusso di lavoro da Designer in esecuzione su Server. Le nostre formule per calcolare le risorse tengono già conto di questi suggerimenti.
Per i requisiti di sistema più recenti di Server, consulta la pagina di assistenza Requisiti di sistema di Server . Abbiamo suddiviso i nostri suggerimenti in due categorie: Requisiti hardware minimi e Hardware consigliato per prestazioni ottimali .
Requisiti hardware minimi
I requisiti hardware minimi di Server sono definiti come i componenti hardware essenziali per un'installazione stabile di Alteryx Server. L'assenza dei requisiti minimi può causare il peggioramento delle prestazioni e l'arresto casuale del servizio su qualsiasi nodo in cui l'engine è in esecuzione.
Per il numero desiderato di flussi di lavoro simultanei sono consigliati i seguenti requisiti hardware minimi:
Desired # Concurrent Workflows | Minimum System Requirements | |
---|---|---|
Memory (GB RAM) | Physical Cores | |
2 | 32 | 4 |
3 | 48 | 6 |
4 | 64 | 8 |
5 | 80 | 10 |
6 | 96 | 12 |
7 | 112 | 14 |
8 | 128 | 16 |
Recommended Hardware for Computational Intensive Workloads
Server hardware recommendations for computationally intensive workloads are defined as the ideal specifications where Server can execute demanding workflows as efficiently as possible. This is essential for reducing congestion on busy systems.
The following hardware specifications are recommended for computational intensive workloads:
Desired # Concurrent Workflows | Computational Intensive Workload Recommendations | ||
---|---|---|---|
Memory (GB RAM) | Physical Cores | Logical Cores* | |
2 | 64 | 8 | 16 |
3 | 96 | 12 | 24 |
4 | 128 | 16 | 32 |
5 | 160 | 20 | 40 |
6 | 192 | 24 | 48 |
7 | 224 | 28 | 56 |
8 | 256 | 32 | 64 |
*Logical cores are either vCPUs or logical cores within a physical core. The standardization to refer to logical cores is a way of comparing consistently across both physical on-prem servers and virtual servers in the cloud. Intel hyperthreading, AMD SMT, 2:1 ratio of vCPU to physical core.
Prima della versione 2022.1, AMP era disponibile su Server ma disattivato per impostazione predefinita.
A partire dalla release 2022.1, per le nuove installazioni di Server il controller e il worker consentiranno l'esecuzione di AMP Engine e dell'engine originale per impostazione predefinita. Per le installazioni di Server esistenti, le impostazioni del controller e del worker potrebbero subire delle modifiche e i nuovi worker potranno consentire l'esecuzione di AMP Engine e dell'engine originale per impostazione predefinita. Se desideri evitare che ciò accada, consulta la nostra nota su come mantenere le impostazioni correnti.
Le impostazioni per l'attivazione di AMP Engine nei nodi del controller e del worker sono disponibili nelle impostazioni di sistema di Alteryx. Ora sono presenti altre impostazioni per la gestione delle allocazioni hardware per ciascun engine. È anche presente un'impostazione consigliata per consentire a Server di gestire le risorse dell'engine .
Impostazioni di sistema per le installazioni di Server esistenti:
Controller > Generale > Abilita AMP Engine Se hai modificato questo valore, la modifica verrà mantenuta dopo l'upgrade, indipendentemente dal valore impostato. Se non hai mai modificato questa impostazione, lasciandola deselezionata per impostazione predefinita, la casella di spunta verrà selezionata e AMP sarà attivo per impostazione predefinita.
Worker > Generale > Consenti a Server di gestire i flussi di lavoro eseguiti contemporaneamente ha come impostazione predefinita True per tutti i worker. Quando questa impostazione è impostata su True, non è possibile definire il numero di worker che possono essere eseguiti contemporaneamente.
Il parametro Worker autorizzati a essere eseguiti simultaneamente viene calcolato automaticamente all'avvio del servizio in base alla CPU e alla memoria disponibili nell'ambiente Server.
Engine > Generale > Engine : se il cliente ha modificato questo valore, la modifica verrà mantenuta dopo l'upgrade, indipendentemente dal valore impostato. Se il cliente non ha mai modificato questa impostazione e ha sempre utilizzato l'opzione predefinita dell'engine originale, il nuovo valore predefinito sarà Entrambi gli engine.
Engine > Generale > Consenti a Server di gestire le risorse dell'engine è una nuova impostazione che ha come valore predefinito False .
La formula Engine > Generale > Limite di memoria per il calcolo del valore predefinito è stata modificata.
La formula Engine > Generale > Numero predefinito di thread di elaborazione per il calcolo del valore predefinito è stata modificata.
Engine > Generale > Esegui engine con priorità più bassa : se il cliente ha cambiato questo valore, la modifica verrà mantenuta dopo l'upgrade, indipendentemente dal valore impostato. Se il cliente ha sempre utilizzato il valore predefinito False, dopo l'aggiornamento il nuovo valore predefinito sarà impostato su True .
Impostazioni di sistema per le nuove installazioni di Server:
La casella di spunta Controller > Generale > Abilita AMP Engine ha come valore predefinito True .
Worker > Generale > Consenti a Server di gestire i flussi di lavoro eseguiti contemporaneamente ha come impostazione predefinita True per tutti i worker.
Il parametro Worker autorizzati a essere eseguiti simultaneamente viene calcolato automaticamente all'avvio del servizio in base alla CPU e alla memoria disponibili nell'ambiente Server.
Il menu a discesa Engine > Generale > Engine ha come valore predefinito Entrambi gli engine .
Engine > Generale > Consenti a Server di gestire le risorse dell'engine ha come valore predefinito False .
La formula Engine > Generale > Limite di memoria per il calcolo del valore predefinito è stata modificata.
La formula Engine > Generale > Numero predefinito di thread di elaborazione per il calcolo del valore predefinito è stata modificata.
Engine > Generale > Esegui engine con priorità più bassa ha come valore predefinito True .
Gli utenti possono tornare alle impostazioni precedenti (ovvero disattivare AMP in Server)?
Se l'amministratore non desidera utilizzare AMP, dovrà disattivarlo manualmente. Vedi l'immagine seguente per l'impostazione dell'engine nella sezione Configurazione generale del controller delle impostazioni di sistema.
Se l'amministratore desidera disattivare AMP su alcuni nodi del worker, può farlo nella sezione Configurazione engine delle impostazioni di sistema. Di seguito è mostrata l'impostazione del menu a discesa Engine. Nell'immagine seguente il parametro è impostato su Entrambi gli engine ma è possibile selezionare l'opzione Engine originale . Entrambi gli engine è l'impostazione predefinita in un nuovo ambiente Server.
Non esiste un limite di memoria distinto. In Impostazioni di sistema , il campo Engine > Generale > Limite di memoria si applica all'engine. Si applica a Designer e a Server, indipendentemente da dove è in esecuzione l'engine.
Designer esegue solo un flusso di lavoro alla volta, pertanto le limitazioni sono diverse ed è prevista una maggiore tolleranza.
AMP è attivato automaticamente nel sistema che, per impostazione predefinita, ne configura tutte le impostazioni. Gli utenti devono apportare modifiche solo se desiderano disattivare l'opzione. Consulta le risposte in Quali modifiche sono state introdotte in Designer e Server?
Per ottenere prestazioni e stabilità ottimali, segui le linee guida per i requisiti hardware minimi .
No, they will run in the exact same way as they did before.
Quando un flusso di lavoro viene salvato in Designer, nell'opzione Runtime è possibile scegliere di utilizzare o meno AMP Engine. Qualsiasi opzione salvata in Designer verrà rispettata in Server. Server non ignorerà mai l'opzione dell'engine relativa al flusso di lavoro. Pertanto, l'esecuzione di AMP e dell'engine originale su Server non causerà l'esecuzione dei flussi di lavoro salvati come engine originale con AMP Engine. Se un flusso di lavoro viene salvato con AMP Engine e AMP non è abilitato in Server, il flusso in questione NON verrà eseguito come engine originale e avrà esito negativo.
Per eseguire come AMP un flusso di lavoro precedentemente salvato come engine originale, il flusso di lavoro deve essere salvato nuovamente in Designer con l'impostazione Usa AMP Engine selezionata.
L'esecuzione dei flussi di lavoro in AMP può modificare l'ordine delle righe di output risultanti perché alcune operazioni vengono eseguite in parallelo. Tieni presente questo aspetto e verifica se i processi si basano sull'ordine dell'output. In tal caso, puoi modificare i flussi di lavoro per garantire l'ordine dell'engine originale.
È probabile che vi siano variazioni nel tempo di esecuzione di ogni flusso di lavoro.
In generale, i processi dei flussi di lavoro AMP vengono eseguiti in modo molto più rapido con il numero corretto di core di elaborazione.
In alcuni casi, l'esecuzione dei processi su AMP può richiedere più tempo rispetto all'engine originale, soprattutto se i flussi di lavoro richiedono un uso intensivo della CPU e il numero di thread per flusso di lavoro è basso.
Mentre in generale i flussi di lavoro termineranno più velocemente, l'esecuzione di un flusso non AMP potrebbe richiedere un tempo leggermente maggiore in quanto un flusso di lavoro AMP concorrente sottrarrà alcune risorse. Ciò non influisce sulla qualità del servizio (QoS) e alcuni flussi di lavoro potrebbero essere eseguiti più velocemente. La qualità del servizio (QoS) resterà invariata.
If it’s properly resourced, both AMP and original Engine workflows should be predictable (predictable using a new baseline, instead of going off of historic original Engine performance results only). The only time it would become unpredictable is if a worker’s hardware resources are under-allocated (original Engine and AMP competing for resources).
È possibile salvare il flusso di lavoro su Server con AMP attivato e salvarne una copia con AMP disattivato ed eseguire ogni flusso di lavoro alcune volte per stabilire quale offre prestazioni migliori. Tieni inoltre presente che la velocità dei flussi di lavoro AMP è maggiore se vengono eseguiti contemporaneamente ad altri flussi dello stesso tipo.
Problemi relativi alla qualità del servizio
Il limite di memoria di configurazione dell'engine si applica all'engine, originale o AMP. La differenza sta nel modo in cui ciascun engine gestisce tale limite:
L'engine originale preassegna l'intero limite.
AMP assegna la quantità necessaria fino al limite di memoria.
Si tratta di un uso più efficiente delle risorse. L'engine originale è caratterizzato da thread multipli, anche se non in numero eccessivo. AMP è molto più efficace per l'esecuzione dei processi in serie. I vantaggi sono visibili in termini di capacità di throughput totale, più alta con AMP rispetto all'engine originale.
Server ora è in grado di analizzare l'hardware e di allocare le risorse appropriate per ogni engine. Pur non essendo paragonabile alla gestione delle risorse di un sistema operativo, questa nuova funzionalità permette a Server di svolgere un'attività analoga.
Assegniamo automaticamente il numero di processi che possono essere eseguiti contemporaneamente in base alle risorse hardware disponibili, se l'amministratore configura tale funzione. Per ulteriori informazioni sulla configurazione dei worker, consulta la pagina di assistenza Worker .
No, le risorse vengono allocate per ogni processo dell'engine. Ogni processo avrebbe le proprie risorse a disposizione, il che significa che non ci dovrebbero essere conflitti di risorse tra i processi.
Articoli su AMP
Webinar su AMP Engine (32 minuti)
Alteryx Engine e AMP: differenze principali
Utilizzo dello strumento con AMP
Accelera i processi analitici con il nuovo AMP Engine
Informazioni su Alteryx AMP Engine
Approfondimenti tecnici su AMP Engine | Parte 1 | Perché scegliere AMP?
Approfondimenti tecnici su AMP Engine | Parte 2 | Concetti chiave di AMP Engine