Limites de simultanéité et mise en file d’attente dans Microsoft Fabric Spark

S’applique à : l’engineering et la science des données dans Microsoft Fabric

Microsoft Fabric permet l’allocation d’unités de calcul par le biais de la capacité, qui est un ensemble dédié de ressources disponibles à l’utilisation à un moment donné. La capacité définit la possibilité d’une ressource à effectuer une activité ou à produire une sortie. Différents éléments consomment une capacité différente à un moment donné. Microsoft Fabric offre une capacité via les références SKU et les versions d’évaluation de Fabric. Pour plus d’informations, consultez Qu’est-ce que la capacité ?.

Lorsque les utilisateurs créent une capacité Microsoft Fabric sur Azure, ils choisissent une taille de capacité en fonction de la taille de leur charge de travail d’analyse. Dans Spark, les utilisateurs obtiennent deux Spark VCores pour chaque unité de capacité qu'ils réservent dans le cadre de leur SKU.

Une unité de capacité = deux VCores Spark

Une fois qu’ils ont acheté la capacité, les administrateurs peuvent créer des espaces de travail dans la limite de la capacité dans Microsoft Fabric. Les Spark VCores associés à la capacité sont partagés entre tous les éléments basés sur Spark tels que les notebooks, les définitions de tâches Spark et les Lakehouses créés dans ces espaces de travail.

Mise en file d’attente et limitation de la simultanéité

Fabric Spark applique un mécanisme de limitation et de mise en file d'attente basé sur les cœurs, dans lequel les utilisateurs peuvent soumettre des tâches en fonction des SKU de capacité Fabric achetés. Le mécanisme de mise en file d’attente est une file d’attente simple basée sur FIFO, qui recherche les emplacements de tâches disponibles et réessaye automatiquement d’effectuer les tâches une fois la capacité disponible. Lorsque les utilisateurs envoient des travaux de notebook ou de lakehouse comme Charger dans une table lorsque la capacité est utilisée à son maximum en raison de tâches en cours d’exécution simultanées utilisant tous les Vcore Spark disponibles pour leur SKU de capacité Fabric achetée, ils sont limités avec le message :

Code de réponse HTTP 430 : ce travail Spark ne peut pas être exécuté, car vous avez atteint une limite de calcul Spark ou de débit d’API. Pour exécuter ce travail Spark, annulez un travail Spark actif via le hub de surveillance, ou choisissez une référence SKU de capacité plus grande, ou bien réessayez ultérieurement.

Lorsque la mise en file d'attente est activée, les projets Notebook déclenchés par les pipelines, Job Scheduler et les définitions du travail Spark sont ajoutés à la file d'attente. Ils sont également automatiquement relancés lorsque la capacité est libérée. L’expiration de la file d’attente est définie sur 24 heures à partir de l’heure de soumission de la tâche. Après cette période, les tâches doivent être renvoyées.

Les capacités Fabric sont activées avec le bursting qui vous permet de consommer des cœurs de calcul supplémentaires au-delà de ce qui a été acheté. Cela permet d'accélérer l'exécution d'une charge de travail. Pour les charges de travail Spark, le bursting permet aux utilisateurs d’envoyer des travaux avec un total de 3X les VCores Spark achetés.

Remarque

Le facteur de bursting augmente uniquement le nombre total de VCores Spark pour aider avec la concurrence, mais n’augmente pas le nombre maximum de cœurs par travail. Les utilisateurs ne peuvent pas soumettre un travail qui nécessite plus de cœurs que ce que leur capacité Fabric offre.

La section suivante répertorie diverses limites basées sur les cœurs pour les charges de travail Spark en fonction des SKU de capacité Microsoft Fabric :

Capacité SKU de Fabric Référence SKU Power BI équivalente vCores Spark VCore Spark maximums avec le facteur de rafale Limite de la file d'attente
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 1 024 3 072 512
F1024 - 2 048 6144 1 024
F2048 - 4096 12288 2 048
Capacité d'essai P1 128 128 NA

Exemple de calcul : la référence SKU F64 offre 128 VCores Spark. Le facteur de rafale appliqué pour une référence SKU F64 est 3, ce qui donne un total de 384 Vcores Spark. Le facteur de rafale est appliqué uniquement pour faciliter la concurrence et n’augmente pas le nombre maximal de cœurs disponibles pour un seul travail Spark. Cela signifie qu’un seul notebook ou définition du travail spark ou travail Lakehouse peut utiliser une configuration de pool de 128 vCores et que 3 travaux avec la même configuration peuvent être exécutés simultanément. Si les notebooks utilisent une configuration de calcul plus petite, ils peuvent être exécutés simultanément jusqu’à ce que l’utilisation maximale atteigne la limite de 384 SparkVcore.

Remarque

Les tâches ont une période d'expiration de 24 heures, après quoi elles sont annulées et les utilisateurs doivent les soumettre à nouveau pour exécution.

La limitation de Fabric Spark n’a pas de limites arbitraires basées sur les travaux, et la limitation est basée uniquement sur le nombre de cœurs autorisés pour la référence SKU de capacité Fabric achetée. Par défaut, le contrôle d'admission de projets est optimiste. En d'autres termes, les projets sont admis en fonction du nombre minimum de cœurs dont ils ont besoin. Plus d'informations sur le processus d'admission optimiste de projet Admission et gestion de projets. Si l'option de poule par défaut (Starter Pool) est sélectionnée pour l'espace de travail, la table suivante répertorie les limites de concurrence maximale des projets.

En savoir plus sur les configurations de pool de démarrage par défaut basées sur la référence SKU de capacité Fabric Configurer les pools de démarrage.

Bursting au niveau du travail

Les administrateurs peuvent configurer leurs pools Spark pour utiliser le nombre maximal de cœurs Spark avec un facteur de rafale disponible pour l’ensemble de la capacité. Par exemple, un administrateur d’espace de travail disposant de son espace de travail attaché à une capacité F64 Fabric peut désormais configurer son pool Spark (pool de démarrage ou pool personnalisé) sur 384 VCores Spark, où les nœuds max des pools de démarrage peuvent être définis sur 48, ou les administrateurs peuvent configurer un pool à XX nœuds de grande taille avec 6 nœuds max.