Partager via


Partitionner pour contourner les limites

Utiliser le partitionnement pour contourner les limites de base de données, de réseau et de calcul

Dans le cloud, tous les services ont des limites dans leur capacité à monter en puissance. Les limites de service Azure sont documentées dans les limites, quotas et contraintes des abonnements Azure et des services. Les limites incluent le nombre de cœurs, la taille de la base de données, le débit des requêtes et le débit réseau. Si votre système augmente suffisamment grand, vous pouvez atteindre une ou plusieurs de ces limites. Utilisez le partitionnement pour contourner ces limites.

Il existe de nombreuses façons de partitionner un système, par exemple :

  • Partitionnez une base de données pour éviter les limites relatives à la taille de la base de données, aux E/S de données ou au nombre de sessions simultanées.

  • Partitionnez une file d’attente ou un bus de messages pour éviter les limites du nombre de requêtes ou du nombre de connexions simultanées.

  • Partitionnez une application web App Service pour éviter les limites du nombre d’instances par plan App Service.

Une base de données peut être partitionnée horizontalement, verticalement ou fonctionnellement.

  • Dans le partitionnement horizontal, également appelé partitionnement, chaque partition contient des données pour un sous-ensemble du jeu de données total. Les partitions partagent le même schéma de données. Par exemple, les clients dont les noms commencent par A-M entrent dans une partition, N-Z dans une autre partition.

  • Dans le partitionnement vertical, chaque partition contient un sous-ensemble des champs des éléments du magasin de données. Par exemple, placez des champs fréquemment consultés dans une partition et moins fréquemment accessibles dans un autre.

  • Dans le partitionnement fonctionnel, les données sont partitionnés en fonction de la façon dont elles sont utilisées par chaque contexte limité dans le système. Par exemple, stockez les données de facture dans une partition et les données d’inventaire des produits dans une autre. Les schémas sont indépendants.

Pour obtenir des instructions plus détaillées, consultez le partitionnement des données.

Recommandations

Partitionnez différentes parties de l’application. Les bases de données sont un candidat évident pour le partitionnement, mais prennent également en compte le stockage, le cache, les files d’attente et les instances de calcul.

Concevez la clé de partition pour éviter les points d’accès. Si vous partitionnez une base de données, mais qu’une partition obtient toujours la majorité des requêtes, vous n’avez pas résolu votre problème. Dans l’idéal, la charge est distribuée uniformément sur toutes les partitions. Par exemple, le hachage par ID client et non la première lettre du nom du client, car certaines lettres sont plus fréquentes. Le même principe s’applique lors du partitionnement d’une file d’attente de messages. Choisissez une clé de partition qui conduit à une distribution uniforme de messages dans l’ensemble de files d’attente. Pour plus d'informations, consultez Partitionnement.

Partitionnez pour contourner les limites de service et d’abonnement Azure. Les composants et services individuels ont des limites, mais il existe également des limites pour les abonnements et les groupes de ressources. Pour les applications très volumineuses, vous devrez peut-être partitionner autour de ces limites.

Diviser à différents niveaux. Envisagez un serveur de base de données déployé sur une machine virtuelle. La machine virtuelle dispose d’un VHD pris en charge par Azure Storage. Le compte de stockage appartient à un abonnement Azure. Notez que chaque étape de la hiérarchie a des limites. Le serveur de base de données peut avoir une limite de pool de connexions. Les machines virtuelles ont des limites de processeur et de réseau. Le stockage a des limites d’E/S par seconde. L’abonnement a des limites sur le nombre de cœurs de machine virtuelle. En règle générale, il est plus facile de partitionner plus bas dans la hiérarchie. Seules les grandes applications doivent être partitionnées au niveau de l’abonnement.