Comment choisir le type et la taille d'instance corrects pour mon cluster ElastiCache pour Redis ?

Dernière mise à jour : 27/06/2022

Comment sélectionner une taille de nœud Amazon ElastiCache pour Redis et une configuration de cluster pour mes charges de travail afin d'obtenir les meilleures performances ?

Brève description

Lorsque vous sélectionnez une taille de nœud pour votre cluster ElastiCache et la configuration de votre cluster, gardez à l'esprit les points suivants :

  • Quelle est la puissance de traitement du processeur dont j'ai besoin ?
  • Quelle quantité de données dois-je stocker ?
  • La taille de nœud sélectionnée sera-t-elle capable de gérer le trafic réseau attendu ?
  • Quel mode de cluster dois-je choisir ?

Résolution

Quelle est la puissance de traitement du processeur dont j'ai besoin ?

Examen des options du nœud

Examinez les options de nœud disponibles. Redis étant un processus à thread unique, les performances n'augmentent pas lorsque vous ajoutez des processeurs à votre nœud. La puissance du cœur de processeur unique sur le nœud détermine les performances. Chaque type de nœud possède ses propres performances de base. Les types de nœuds de la génération actuelle fournissent plus de mémoire et de puissance de calcul à moindre coût par rapport aux versions précédentes. Par exemple, les instances M5 et R5 offrent de meilleures performances à moindre coût par rapport aux instances M4 et R4.

Comparez vos nœuds

Il est recommandé de comparer vos nœuds afin d'obtenir une estimation des performances de l'instance par rapport à votre charge de travail attendue. Pour ce faire, utilisez l'utilitaire redis-benchmark. Pour plus d'informations sur les recommandations de base, consultez Cinq caractéristiques de charge de travail à prendre en compte lors du dimensionnement correct des clusters Amazon ElastiCache Redis.

Lorsque vous effectuez les tests d'évaluation, imitez la charge de travail du trafic de votre application, y compris le nombre de demandes, la distribution des clés et la taille des éléments. Surveillez les métriques Amazon CloudWatch concernant l'utilisation de la mémoire, l'utilisation du processeur, les accès au cache et les échecs de cache. Vous remarquerez peut-être que votre cluster n'a pas le taux de réussite souhaité ou que des clés sont exclues trop souvent. Dans ce cas, choisissez une taille de nœud différente avec des spécifications de processeur et de mémoire plus importantes.

Comme Redis est un thread unique, multipliez l'utilisation du processeur signalée par le nombre de cœurs de processeur pour obtenir l'utilisation réelle. Par exemple, un processeur à quatre cœurs affichant un taux d'utilisation de 20 % est en fait le cœur que Redis utilise avec un taux d'utilisation de 80 %.

Quelle quantité de données devrai-je stocker ?

Pour estimer les besoins de stockage, multipliez la taille moyenne des éléments à mettre en cache par le nombre d'éléments qui se trouvent dans le cache en même temps. Pour estimer la taille d'un élément, sérialisez les éléments de votre cache, comptez les caractères, puis divisez cette somme par le nombre de partitions de votre cluster.

Gardez à l'esprit le paramètre de groupe de mémoire réservée ou de pourcentage de mémoire réservée de votre version Redis. Ce paramètre réserve de la mémoire pour une utilisation autre que des données, comme les sauvegardes système et la stabilité générale du système. Par défaut, cette valeur est définie sur 25 % de votre mémoire maximale. Tenez compte de cela lorsque vous déterminez la taille suffisante pour vos données.

Par exemple, cache.r4.large dispose de 12,3 Go de mémoire disponible à utiliser. Comme votre mémoire réservée est définie sur 25 %, le nœud stocke jusqu'à 9,2 Go (12,3 x 75 %) de données. Le reste est réservé aux autres fonctions Redis et à la stabilité du système.

Le type de nœud que j'ai sélectionné sera-t-il capable de gérer le trafic réseau attendu ?

Assurez-vous que le type de nœud que vous sélectionnez peut gérer la quantité de données transmises sans atteindre le maximum du réseau.

Pour déterminer le débit maximal sur un nœud ElastiCache, exécutez un test de performance sur un nœud Amazon Elastic Compute Cloud (Amazon EC2) similaire.

Par exemple, pour un nœud cache.m4.large, exécutez vos tests sur une instance m4.large EC2. L'exécution de ce test permet de déterminer le débit maximal théorique pour votre nœud. Il fournit également une estimation de la quantité de bande passante que vous pouvez transférer entre votre client et votre nœud Redis. Un effet secondaire courant de la maximisation de votre réseau est la présence d'une ligne plate sur le graphique de la bande passante, indiquant que vous maximisez votre matériel. Pour obtenir des instructions sur l'utilisation d'iperf3 pour mesurer les performances réseau entre les instances, consultez Comment comparer le débit réseau entre les instances Linux Amazon EC2 dans le même Amazon VPC ?

Les nœuds ElastiCache étant similaires à leurs homologues EC2, consultez les performances réseau répertoriées pour chaque type d'instance. Si vous maximisez le débit réseau de votre nœud, vous devrez peut-être sélectionner la taille de nœud supérieure pour améliorer les performances du réseau. Par exemple, une instance m4.large possède une mise en réseau modérée. Toutefois, si votre charge de travail atteint le maximum de votre réseau et que vos performances sont médiocres, identifiez un nouveau type de nœud offrant de meilleures performances réseau. Les meilleures performances réseau peuvent être répertoriées comme Élevée ou 10 Gigabits dans la colonne Performances réseau de la page Tarification.

N'oubliez pas que les performances du réseau s'appliquent également au client. Si votre client est un t2.micro avec des performances réseau faibles à modérées et que vous poussez les données vers un serveur m4.10xlarge, vous devez d'abord maximiser le débit réseau de votre client.

Quel mode de cluster choisir ?

Le choix du mode adapté à la charge de travail de votre application dépend du trafic :

Si la charge principale de votre cluster consiste en des applications lisant des données, vous pouvez choisir un cluster Redis (mode cluster désactivé). Ensuite, faites évoluer votre cluster pour prendre en charge davantage d'opérations de lecture en ajoutant des réplicas en lecture. Il existe un maximum de 5 réplicas en lecture. N'oubliez pas que les clusters désactivés en mode cluster n'ont qu'une seule partition. Le type de nœud doit donc être suffisamment grand pour prendre en charge toutes les données du cluster, plus les frais généraux nécessaires.

Si la charge sur votre cluster est lourde en écriture et que votre charge de travail d'écriture dépasse ce qu'un nœud peut offrir, utilisez un cluster Redis (mode cluster activé). Les clusters activés en mode cluster répartissent vos clés sur plusieurs nœuds principaux. Les performances d'écriture sont donc réparties entre plusieurs nœuds au lieu d'un seul nœud.

Si vous avez une charge de travail importante qui nécessite des performances extrêmes, utilisez un cluster activé en mode cluster avec plusieurs partitions et plusieurs réplicas en lecture pour chaque partition. Par exemple, vous pouvez créer un cluster avec 15 partitions et 5 réplicas par nœud principal.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?