Ce document explique comment estimer la capacité dont vous avez besoin pour un cluster Managed Service pour Apache Kafka et comment ajuster la taille d'un cluster existant.
Lorsque vous créez un cluster Managed Service pour Apache Kafka, vous choisissez les paramètres suivants pour la taille du cluster :
vCPUs : nombre de processeurs virtuels dans le cluster. Le nombre minimal de vCPU est de 3.
Mémoire : quantité de mémoire par vCPU. Vous devez provisionner entre 1 Gio et 8 Gio par processeur virtuel.
Vous pouvez mettre à jour ces valeurs une fois le cluster créé.
Choisir la taille initiale du cluster
Pour choisir la taille initiale du cluster, commencez par estimer les valeurs suivantes en fonction de votre charge de travail spécifique.
- Débit d'écriture : débit total auquel les producteurs envoient des données au cluster, en Mbit/s.
- Débit de lecture : débit total auquel les consommateurs lisent les données du cluster, en Mo/s.
Pour estimer la taille d'un cluster nécessaire pour gérer ce débit, procédez comme suit :
Calculez la bande passante d'écriture totale, y compris la réplication.
Total write bandwidth = produce rate * replicasCette valeur inclut la bande passante du client au courtier principal, et du courtier principal aux courtiers répliqués. Le nombre d'instances répliquées par défaut est de 3.
Calculez la bande passante de lecture totale, y compris la réplication.
Total read bandwidth = consume rate + produce rate * ( replicas - 1)Cette valeur inclut la bande passante pour les opérations de lecture du client (taux de consommation), ainsi que la bande passante nécessaire pour que les réplicas restent synchronisés. Les réplicas se synchronisent en lisant les données du leader de la partition. Le terme
(replicas - 1)est utilisé, car le leader de partition ne lit aucune réplique.Calculez le débit de données équivalent en écriture.
En règle générale, la bande passante de lecture est quatre fois plus efficace à traiter que la bande passante d'écriture. Pour tenir compte de cette différence, calculez le débit de données équivalent en écriture comme suit :
Write-equivalent rate = (total write bandwidth) + (total read bandwidth / 4)Déterminez votre objectif d'utilisation des processeurs virtuels. Cette valeur représente l'utilisation moyenne des processeurs virtuels en pourcentage de la capacité des processeurs virtuels. L'utilisation réelle peut augmenter ou diminuer au fil du temps.
- Pour commencer, définissez une utilisation cible de 50 %.
- Si vous connaissez les modèles de trafic attendus, définissez la cible d'utilisation sur le rapport entre la bande passante équivalente en écriture moyenne et la bande passante maximale que vous devez prendre en compte.
En général, l'augmentation de l'utilisation réduit le coût de votre cluster en diminuant sa taille, mais elle est également plus risquée si le trafic dépasse les estimations. Une utilisation excessive des vCPU peut entraîner des latences et des erreurs élevées.
Calculer le nombre de vCPU.
vCPU count = ceiling (write-equivalent rate / 20 MBps / utilization)La capacité estimée pour un seul processeur virtuel dans une seule zone est de 20 Mbit/s. Par conséquent, si les processeurs virtuels s'exécutent à 100 % d'utilisation, vous aurez besoin de
(write-equivalent rate / 20)processeurs virtuels. Pour obtenir le nombre réel, divisez cette valeur par l'utilisation cible et arrondissez le résultat à l'entier supérieur.De plus, l'envoi de messages par lots de moins de 10 Ko réduit le débit par processeur par rapport au benchmark ici. Dans ce cas, tenez compte de la capacité de débit réduite ou envisagez d'envoyer des lots plus volumineux.
Estimez la mémoire requise. Nous recommandons 4 Gio de RAM pour chaque vCPU.
Memory = vCPU count * 4 GiB
Pour obtenir la taille la plus précise, effectuez des tests avec votre charge de travail réelle. Surveillez l'utilisation des ressources du cluster et augmentez-la si nécessaire.
Exemple de calcul de la taille
Supposons qu'une charge de travail ait un débit d'écriture de 50 Mo/s et un débit de lecture de 100 Mo/s, avec 3 répliques et une utilisation cible des processeurs virtuels de 50 %.
Total write bandwidth = 50 MBps * 3 replicas = 150 MBpsTotal read traffic = 100 MBps + 50 MBps * (3 - 1) = 200 MBpsWrite-equivalent rate = 150 MBps + (200 MBps / 4) = 200 MBpsTarget utilization = 0.5Number of vCPUs = ceiling (200 MBps / 20 MBps / 0.5) = 20 vCPUsMemory = 20 vCPUs * 4 GiB = 80 GiB
Courtiers
Lorsque vous créez un cluster, le système provisionne au moins un courtier dans chacune des trois zones. Les courtiers sont répartis aussi équitablement que possible entre les zones, et tous les courtiers disposent du même nombre de processeurs virtuels. Le nombre de courtiers peut être calculé à l'aide de la formule suivante :
number of brokers = max(3, ceiling(vCPUs / 15))
Par exemple, un cluster avec 75 processeurs virtuels commence avec 5 brokers.
Si vous modifiez le nombre de processeurs virtuels, ils sont répartis entre les courtiers existants, jusqu'à un maximum de 15 processeurs virtuels par courtier. Si vous augmentez la taille du cluster au-delà de 15 processeurs virtuels par courtier, le système provisionne un nouveau courtier. Une fois qu'un nouveau courtier est provisionné, il peut être réduit à un processeur virtuel, mais il ne peut pas être supprimé.
Mettre à jour la taille du cluster
Une fois que vous avez créé un cluster Managed Service pour Apache Kafka, vous pouvez ajuster le nombre de vCPU et la mémoire en fonction de vos besoins. Lorsque vous mettez à jour un cluster existant, les règles suivantes s'appliquent :
Le ratio global processeur virtuel/mémoire du cluster doit toujours rester compris entre 1:1 et 1:8.
Si vous réduisez la taille, chaque courtier existant doit disposer d'au moins un processeur virtuel et 1 Gio de mémoire. Le nombre de brokers ne diminue jamais.
Si vous augmentez la taille de votre cluster et que cela entraîne l'ajout de nouveaux courtiers, le nombre moyen de processeurs virtuels et de mémoire par courtier ne peut pas diminuer de plus de 10 % par rapport aux moyennes avant la mise à jour.
Par exemple, si vous essayez de faire passer un cluster de 45 processeurs virtuels (3 brokers) à 48 processeurs virtuels (4 brokers), l'opération échoue. En effet, le nombre moyen de vCPU par courtier passe de 15 à 12, soit une réduction de 20 %, ce qui dépasse la limite de 10 %.
Si vous devez réduire le nombre de processeurs de plus de 10 %, nous vous recommandons de le faire en plusieurs étapes. Après chaque mise à jour, surveillez l'utilisation des ressources et rééquilibrez les partitions si nécessaire.
Toutefois, si vous êtes certain que vos courtiers auront suffisamment de capacité après la mise à jour, vous pouvez désactiver cette vérification. Pour désactiver la vérification, définissez l'option allow_broker_downscale_on_cluster_upscale sur true dans la commande gcloud managed-kafka clusters update. Cette option indique que vous acceptez le risque potentiel de baisse des performances.
Pour mettre à jour un cluster, consultez Mettre à jour un cluster Managed Service pour Apache Kafka.
Exemples d'opérations de mise à jour
Les exemples suivants commencent par un cluster comportant 75 processeurs virtuels, 130 Gio de RAM et 5 brokers.
Exemple d'opération d'upscaling ayant échoué
Faites passer le cluster à 80 vCPU et 140 Gio de RAM.
Le service détermine si un nouveau courtier est nécessaire.
- plafond (80 vCPU / 15) = 6 brokers
Le cluster passerait de cinq à six brokers, ce qui déclencherait la vérification de sécurité de 10 %.
Voici les moyennes actuelles par courtier :
75 vCPU / 5 brokers = 15 vCPU par broker
130 Gio / 5 brokers = 26 Gio par broker
Avec six courtiers, les nouvelles moyennes sont les suivantes :
80 vCPU / 6 brokers = 13,33 vCPU par broker, soit une réduction de 11,1 %
140 Gio / 6 brokers = 23,33 Gio par broker, soit une réduction de 10,2 %
L'opération échoue, car ces moyennes dépassent 10 %.
Exemple d'opération de mise à l'échelle réussie
Faites passer le cluster à 85 vCPU et 150 Gio de RAM.
Le service détermine si un nouveau courtier est nécessaire.
- plafond (85 processeurs virtuels / 15) = 6 brokers
Le cluster passerait de cinq à six brokers, ce qui déclencherait la vérification de sécurité de 10 %.
Voici les moyennes actuelles par courtier :
75 vCPU / 5 brokers = 15 vCPU par broker
130 Gio / 5 brokers = 26 Gio par broker
Avec six courtiers, les nouvelles moyennes sont les suivantes :
85 vCPU / 6 brokers = 14,17 vCPU par broker, soit une réduction de 5,5 %
150 Gio / 6 brokers = 25 Gio par broker, soit une réduction de 3,8 %
Cette opération réussit, car la réduction du nombre moyen de processeurs virtuels et de la mémoire par courtier est inférieure à la limite de 10 %.
Étapes suivantes
- Créer un cluster Managed Service pour Apache Kafka
- Surveiller un cluster Managed Service pour Apache Kafka
- Mettre à jour un cluster Managed Service pour Apache Kafka