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.
Risultati dell'analisi comparativa
Nota
Per l'analisi comparativa abbiamo utilizzato le seguenti misurazioni:
Throughput del flusso di lavoro = (flussi di lavoro/runtime). Il tempo runtime è il tempo di esecuzione totale di un flusso di lavoro.
Throughput dell'engine = (flussi di lavoro/engine_runtime). Engine_runtime è il periodo in cui l'engine esegue un flusso di lavoro.
Flussi di lavoro = numero di flussi di lavoro.
Quando è presente un solo flusso di lavoro, non c'è differenza di tempo significativa tra il throughput dell'engine e del flusso di lavoro. In presenza di 2 flussi di lavoro in una coda con un solo worker, il runtime del primo flusso di lavoro influisce su quello del secondo.
Risultati dell'analisi comparativa per una tipica attività di preparazione dei dati
Risultati dell'analisi comparativa per una tipica attività altamente predittiva della CPU o di Machine Learning
Per ulteriori informazioni, consulta i collegamenti alla documentazione in fondo al documento.
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.
1. Controller > Generale > Abilita AMP Engine
1. Prima di eseguire l'aggiornamento, annota le impostazioni correnti.
2. Dopo l'aggiornamento, ripristina il valore desiderato della selezione.
2. Worker > Generale > Consenti a Server di gestire i flussi di lavoro eseguiti contemporaneamente
1. Prima di eseguire l'aggiornamento, annota il numero di "flussi di lavoro che possono essere eseguiti contemporaneamente" impostato.
2. Dopo l'aggiornamento, deseleziona " Consenti a Server di gestire i flussi di lavoro eseguiti contemporaneamente ".
3. Immetti il numero di "flussi di lavoro che possono essere eseguiti contemporaneamente" salvato.
3. Engine > Generale > Engine
1. Prima di eseguire l'aggiornamento, annota le impostazioni correnti.
2. Dopo l'aggiornamento, ripristina il valore desiderato della selezione.
4. Engine > Generale > Esegui engine con priorità più bassa
1. Prima di eseguire l'aggiornamento, annota le impostazioni correnti.
2. Dopo l'aggiornamento, ripristina il valore desiderato della selezione.
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:
Nota
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))
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.
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:
Nota
La riga evidenziata in verde rappresenta la configurazione minima consigliata. La riga che mostra le informazioni per un flusso di lavoro simultaneo è utile per comprendere quanto è necessario aumentare le risorse per aggiungere un processo alla configurazione esistente.
Hardware consigliato per prestazioni ottimali
I suggerimenti sull'hardware per garantire prestazioni ottimali sono i punti di forza che consentono a Server di completare i flussi di lavoro nel modo più efficiente possibile durante l'uso di AMP Engine. Ciò consente di eliminare la congestione dei sistemi caratterizzati da un'attività intensa e di ottimizzare le prestazioni e le capacità di throughput di AMP Engine.
Per garantire prestazioni ottimali, consigliamo di utilizzare le seguenti impostazioni hardware:
Nota
*I core logici sono vCPU o core logici all'interno di un core fisico. La standardizzazione per il riferimento ai core logici è un modo per eseguire confronti coerenti tra i server fisici locali e i server virtuali nel cloud.
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'aggiornamento, 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 i 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'aggiornamento, 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 .
L'attivazione di AMP in Server impedisce l'esecuzione di uno dei miei flussi di lavoro esistenti?
No, i flussi di lavoro verranno eseguiti esattamente come prima.
L'esecuzione di AMP e dell'engine originale su Server modificherà la modalità di esecuzione dei miei flussi di lavoro esistenti?
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.
Quando AMP è attivato, i clienti potranno ottenere il risultato desiderato?
Il tempo di completamento dovrebbe continuare a migliorare, salvo alcune eccezioni.
Se l'attivazione di AMP non garantisce tempi di esecuzione costanti, consigliamo agli utenti con questo caso aziendale di disattivare AMP?
Se le risorse sono adeguate, i flussi di lavoro di AMP e dell'engine originale dovrebbero essere prevedibili (utilizzando una nuova baseline invece di ricorrere solo ai risultati cronologici delle prestazioni dell'engine originale). Non sono prevedibili solo in caso di allocazione di un numero insufficiente di risorse hardware di un worker (engine originale e AMP si contendono le risorse).
È 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