Condividi tramite


Limiti di concorrenza e accodamento in Apache Spark per Microsoft Fabric

Si applica a:✅ ingegneria dei dati e data science in Microsoft Fabric

Microsoft Fabric consente l'allocazione di unità di calcolo tramite capacità, vale a dire un set dedicato di risorse utilizzabile in un determinato momento. La capacità definisce l'abilità di una risorsa di eseguire un'attività o di produrre output. Diversi elementi usano capacità diverse in un determinato momento. Microsoft Fabric offre capacità tramite versioni di valutazione o SKU di Fabric. Per altre informazioni, vedere Che cos’è la capacità?.

Quando gli utenti creano una capacità di Microsoft Fabric in Azure, scelgono una dimensione della capacità in base alle dimensioni del carico di lavoro di analisi. In Apache Spark gli utenti ottengono due VCore Apache Spark per ogni unità di capacità che prenotano come parte dello SKU.

Un'unità di capacità = Due VCore Spark

Dopo aver acquistato la capacità, gli amministratori possono creare aree di lavoro all'interno della capacità in Microsoft Fabric. I VCore Spark associati alla capacità vengono condivisi tra tutti gli elementi basati su Apache Spark, ad esempio notebook, definizioni processo di Apache Spark e lakehouse creati in queste aree di lavoro.

Limitazione della concorenza e accodamento

Spark per Fabric applica un meccanismo di limitazione e accodamento basato su core in cui gli utenti possono inviare processi in base agli SKU di capacità di Fabric acquistati. Il meccanismo di accodamento è una semplice coda basata su FIFO che controlla gli slot di processo disponibili e riprova automaticamente i processi dopo che la capacità è diventata disponibile. Quando gli utenti inviano processi notebook o lakehouse come Load to Table quando la loro capacità è al massimo utilizzo a causa di processi in esecuzione simultanei che usano tutti i VCore Spark disponibili per lo SKU della capacità di Fabric acquistata, vengono limitati con il messaggio

Codice di risposta HTTP 430: questo processo Spark non può essere eseguito perché è stato raggiunto un limite di calcolo di Spark o velocità dell’API. Per eseguire questo processo Spark, annullare un processo di Spark attivo tramite l'hub di monitoraggio oppure scegliere uno SKU di capacità maggiore o riprovare più tardi.

Con l’accodamento abilitato, i processi del notebook attivati da pipeline e utilità di pianificazione dei processi e definizioni processo Spark vengono aggiunti alla coda e ritentati automaticamente quando la capacità viene liberata. La scadenza della coda è impostata su 24 ore dall'ora di invio del processo. Dopo questo periodo, i processi dovranno essere inviati di nuovo.

Le capacità di Fabric sono abilitate con bursting, che consente di usare core di calcolo aggiuntivi oltre a quanto acquistato per velocizzare l'esecuzione di un carico di lavoro. Il bursting di carichi di lavoro Apache Spark consente agli utenti di inviare processi con un totale di 3 volte i VCore Spark acquistati.

Nota

Il fattore di bursting aumenta solo il numero totale di VCore Spark per facilitare la concorrenza, ma non aumenta il numero massimo di core per processo. Gli utenti non possono inviare un processo che richiede più core rispetto a quanto offerto dalla capacità di Fabric.

La sezione seguente elenca vari limiti basati su core per i carichi di lavoro Spark basati sugli SKU di capacità di Microsoft Fabric:

SKU di capacità di Fabric SKU di Power BI equivalente VCore Spark Numero massimo di VCore Spark con fattore di burst Limite della coda
F2 - 4 20 4
F4 - 8 24 4
F8 - 16 48 8
F16 - 32 96 16
F32 - 64 192 32
F64 P1 128 384 64
F128 P2 256 768 128
F256 P3 512 1536 256
F512 P4 1024 3072 512
F1024 - 2048 6144 1024
F2048 - 4096 12288 2048
Capacità della versione di valutazione P1 128 128 ND

Calcolo di esempio: lo SKU F64 offre 128 VCore Spark. Il fattore di burst applicato per uno SKU F64 è 3, che offre un totale di 384 VCore Spark. Il fattore di burst viene applicato solo per facilitare la concorrenza e non aumenta il numero massimo di core disponibili per un singolo processo Spark. Ciò comporta che un singolo notebook o definizione processo Spark o processo lakehouse può usare una configurazione del pool di max 128 vCore e 3 processi con la stessa configurazione possono essere eseguiti simultaneamente. Se i notebook usano una configurazione di calcolo più piccola, possono essere eseguiti simultaneamente fino a quando l’utilizzo massimo raggiunge il limite di 384 VCore Spark.

Nota

I processi hanno un periodo di scadenza della coda di 24 ore, dopo di che vengono annullati e gli utenti devono inviarli di nuovo per l'esecuzione del processo.

Spark per la limitazione di Fabric non ha applicato limiti arbitrari basati sui processi e la limitazione è basata solo sul numero di core consentiti per lo SKU di capacità di Fabric acquistato. L'ammissione di lavoro per impostazione predefinita sarà un controllo ammissione ottimistico in cui i processi vengono ammessi in base ai loro requisiti minimi di core. Per altre informazioni sull'ammissione del processo ottimistica, vedere Ammissione e gestione dei processi Se l'opzione pool predefinito (pool di avvio) è selezionata per l'area di lavoro, la tabella seguente elenca i limiti massimi dei processi simultanei.

Per altre informazioni sulle configurazioni predefinite del pool di avvio in base allo SKU di capacità di Fabric, vedere Configurazione dei pool di avvio.

Bursting a livello di processo

Gli amministratori possono configurare i pool di Apache Spark per usare il numero massimo di core Spark con fattore di burst disponibile per l'intera capacità. Ad esempio, un amministratore dell'area di lavoro che ha la sua area di lavoro collegata a una capacità di Fabric F64 ora può configurare il pool di Spark (pool di avvio o pool personalizzato) a 384 VCore Spark, in cui il numero massimo di nodi dei pool di avvio può essere impostato su 48 oppure gli amministratori possono configurare un pool di nodi di grandi dimensioni XX con max 6 nodi.