Cette page décrit les spécifications des instances et des nœuds pour les instances Memorystore pour Valkey. Pour savoir comment créer une instance, consultez Créer des instances.
Choisir un type de nœud
Les nœuds de votre instance utilisent tous le même type de nœud de votre choix. Le type de nœud le mieux adapté à votre instance dépend de vos besoins en termes de prix, de performances et de capacité de l'espace de clés.
Le type de nœud shared-core-nano est destiné aux petites charges de travail. Ce type de nœud offre des performances variables et n'est pas associé à un SLA, ce qui le rend inadapté aux charges de travail de production.
Si vous migrez vos charges de travail de Memorystore pour Redis vers Memorystore pour Valkey ou si vous devez créer des instances avec des tailles de nœud comprises entre 1 Go et 3 Go, mais que vous avez besoin d'une garantie de SLA, choisissez les types de nœuds custom-pico, custom-micro ou custom-mini.
Le type de nœud standard-small vous permet de provisionner de petites instances et de les développer par petits incréments à un coût potentiellement inférieur à celui des autres types de nœuds.
standard-small offre également l'avantage de distribuer votre espace de clés sur un plus grand nombre de nœuds avec un nombre total de vCPU plus élevé. Cela offre un meilleur rapport prix/performances que highmem-medium, à condition que la capacité totale de l'espace de clés des nœuds plus petits soit suffisante pour vos besoins en données.
Si vous avez des charges de travail qui nécessitent un taux de puissance de traitement plus élevé par rapport à la mémoire, choisissez le type de nœud highcpu-medium. Si vous avez besoin d'une capacité d'instance supérieure à celle fournie par highmem-medium, nous vous recommandons de choisir les types de nœuds standard-large, highmem-xlarge ou highmem-2xlarge. Lorsque vous ajoutez des processeurs virtuels à des nœuds de plus en plus grands (scaling up), les performances de Valkey peuvent ne pas évoluer de manière linéaire. Pour obtenir un meilleur rapport prix/performances, nous vous recommandons plutôt de faire évoluer votre instance horizontalement en ajoutant des nœuds.
Spécification du type de nœud
La capacité et les caractéristiques des nœuds dépendent du type de nœud que vous choisissez :
Capacité de l'espace de clés et surcharge réservée
| Type de nœud | Capacité d'espace de clés inscriptible par défaut | Capacité totale des nœuds |
|---|---|---|
| shared-core-nano | 1,12 Go | 1,4 Go |
| custom-pico | 1,08 Go | 1,25 Go |
| custom-micro | 2 GB | 2,5 Go |
| custom-mini | 3 GB | 3,75 Go |
| standard-small | 5,2 Go | 6,5 Go |
| highmem-medium | 10,4 Go | 13 Go |
| highcpu-medium | 10,4 Go | 13 Go |
| standard-large | 20,8 Go | 26 Go |
| highmem-xlarge | 46,4 Go | 58 Go |
| highmem-2xlarge | 88 Go | 110 Go |
Memorystore réserve automatiquement une partie de la capacité de votre instance pour éviter les erreurs de mémoire saturée (OOM, Out Of Memory). Cela garantit une expérience fluide de lecture et d'écriture des clés. Voici les limites de mémoire et les détails de stockage :
Personnaliser votre stockage : bien que nous vous recommandions d'utiliser les paramètres par défaut, vous pouvez ajuster la quantité de stockage réservé à l'aide de la configuration
maxmemory. Pour en savoir plus surmaxmemory, consultez Configurations d'instance compatibles.De combien d'espace de stockage disposez-vous ? Reportez-vous à la colonne Capacité d'espace de clés inscriptible par défaut du tableau précédent. Indique l'espace de stockage disponible pour vos clés par défaut.
Maximiser le stockage : si vous souhaitez obtenir la capacité de stockage maximale possible, la colonne Capacité totale des nœuds indique la limite de stockage lorsque vous définissez la configuration
maxmemorysur 100 %. Toutefois, ne recommandez pas de choisir une valeurmaxmemorysupérieure au paramètre par défaut.Le type de nœud
shared-core-nanoest limité à 1, 12 Go et ne peut pas être modifié avec la configurationmaxmemory.
Caractéristiques des nœuds
| Type de nœud | Nombre de vCPU | SLA proposé | Nombre de connexions client par défaut | Nombre maximal de connexions client | Mémoire maximale pour les clients (configuration maxmemory-clients) |
|---|---|---|---|---|---|
| shared-core-nano | 0,5 | Non | 5 000 | 5 000 | 12 % |
| custom-pico | 2 | Oui | 16 000 | 32 000 | 12 % |
| custom-micro | 2 | Oui | 16 000 | 32 000 | 12 % |
| custom-mini | 2 | Oui | 16 000 | 32 000 | 12 % |
| standard-small | 2 | Oui | 16 000 | 32 000 | 7 % |
| highmem-medium | 2 | Oui | 32 000 | 64 000 | 7 % |
| highcpu-medium | 8 | Oui | 32 000 | 64 000 | 7 % |
| standard-large | 8 | Oui | 32 000 | 64 000 | 7 % |
| highmem-xlarge | 8 | Oui | 64 000 | 64 000 | 4 % |
| highmem-2xlarge | 16 | Oui | 64 000 | 64 000 | 4 % |
Plus vous sélectionnez de processeurs virtuels (vCPU) pour votre instance, meilleures sont les performances. Si votre instance exécute des charges de travail gourmandes en ressources, sélectionnez un type de nœud avec un nombre de processeurs virtuels plus élevé (par exemple, highmem-xlarge). Si votre instance effectue des tâches moins exigeantes, sélectionnez un type de nœud avec un nombre de processeurs virtuels plus faible (par exemple, highmem-medium).
Procéder au scaling d'une instance
Lorsque vous créez une instance Memorystore pour Valkey, vous choisissez un type de nœud pour l'instance et spécifiez le nombre de partitions pour l'instance. Une fois l'instance créée, et à mesure que les besoins en capacité de votre instance évoluent, vous devrez peut-être la faire évoluer comme suit :
- Modifiez le nombre de segments pour votre instance. C'est ce qu'on appelle le scaling horizontal.
Pour mettre à l'échelle une instance horizontalement, effectuez l'une des actions suivantes :
- Ajoutez des partitions à l'instance. Il s'agit d'un scaling out de l'instance.
- Supprimez les partitions de l'instance. Il s'agit d'un scaling in de l'instance.
- Modifiez le type de nœud de votre instance. C'est ce qu'on appelle le scaling vertical. Pour faire évoluer une instance verticalement, remplacez son type de nœud par l'un des types de nœud suivants :
- Passez à un type de nœud plus grand. Il s'agit d'un scaling à la hausse de l'instance.
- Passez à un type de nœud plus petit. Il s'agit d'un scaling à la baisse de l'instance.
Spécification de l'instance
Cette section indique les capacités d'instance minimales et maximales en fonction de la forme de l'instance, du type de nœud et du nombre de réplicas.
Capacité inscriptible minimale
La capacité d'écriture correspond à la quantité de stockage disponible pour l'écriture de clés. Elle est égale à la taille d'un nœud d'instance. Par conséquent, selon le type de nœud, la capacité d'écriture minimale est comprise entre 1,25 Go et 110 Go. La capacité d'écriture minimale n'est pas affectée par le nombre de réplicas que vous choisissez.
Capacité d'écriture maximale
Cette section liste la capacité d'écriture maximale pour les instances en mode cluster activé et en mode cluster désactivé.
Instances avec le mode cluster activé
Le tableau suivant répertorie la capacité d'écriture maximale pour les instances en mode cluster activé qui comportent entre 0 et 5 réplicas par nœud.
| Type et taille du nœud | Capacité maximale, avec une forme d'instance de 250 nœuds principaux et 0 réplique par nœud | Capacité maximale, avec une forme d'instance de 125 nœuds principaux et une réplique par nœud | Capacité maximale, avec une forme d'instance de 83 nœuds principaux et 2 réplicas par nœud | Capacité maximale, avec une forme d'instance de 62 nœuds principaux et 3 répliques par nœud | Capacité maximale, avec une forme d'instance de 50 nœuds principaux et 4 répliques par nœud | Capacité maximale, avec une forme d'instance de 41 nœuds principaux et 5 réplicas par nœud |
|---|---|---|---|---|---|---|
| shared-core-nano : 1,4 Go | 350 Go | 175 Go | 116,2 Go | 86,8 Go | 70 Go | 57,4 Go |
| standard-small : 6,5 Go | 1 625 Go | 812,5 Go | 539,5 Go | 403 Go | 325 Go | 266,5 Go |
| highmem-medium : 13 Go | 3 250 Go | 1 625 Go | 1 079 Go | 806 Go | 650 Go | 533 Go |
| highcpu-medium : 13 Go | 3 250 Go | 1 625 Go | 1 079 Go | 806 Go | 650 Go | 533 Go |
| standard-large : 26 Go | 6 500 Go | 3 250 Go | 2 158 Go | 1 612 Go | 1 300 Go | 1 066 Go |
| highmem-xlarge : 58 Go | 14 500 Go | 7 250 Go | 4 814 Go | 3 596 Go | 2 900 Go | 2 378 Go |
| highmem-2xlarge : 110 Go | 27 500 Go | 13 750 Go | 9 130 Go | 6 820 Go | 5 500 Go | 4 510 Go |
Les types de nœuds custom-pico, custom-micro et custom-mini ne sont disponibles que pour les instances avec le mode cluster désactivé. Par conséquent, ces types de nœuds n'apparaissent pas dans ce tableau.
Instances avec le mode cluster désactivé
Le tableau suivant répertorie la capacité d'écriture maximale pour les instances dont le mode cluster est désactivé.
| Type et taille du nœud | Capacité d'écriture maximale |
|---|---|
| shared-core-nano : 1,4 Go | 1,12 Go |
| custom-pico : 1,25 Go | 1,08 Go |
| custom-micro - 2.5 GB | 2 GB |
| custom-mini : 3,75 Go | 3 GB |
| standard-small : 6,5 Go | 5,2 Go |
| highmem-medium : 13 Go | 10,4 Go |
| highcpu-medium : 13 Go | 10,4 Go |
| standard-large : 26 Go | 20,8 Go |
| highmem-xlarge : 58 Go | 46,4 Go |
| highmem-2xlarge : 110 Go | 88 Go |
Performances
L'utilisation de l'outil de benchmarking OSS memtier dans la région us-central1 a permis d'obtenir entre 120 000 et 130 000 opérations par seconde par nœud à deux processeurs virtuels (standard-small et highmem-medium) avec une latence en microsecondes et une taille de données de 1 Kio.
Nous vous recommandons d'effectuer votre propre benchmarking avec des charges de travail réelles ou synthétiques qui ressemblent à votre trafic de production. De plus, nous vous recommandons de dimensionner vos instances avec une marge (ou "marge de sécurité") pour les pics de charge de travail ou le trafic inattendu. Pour obtenir plus de conseils, consultez les bonnes pratiques.
Points de terminaison d'instance pour le mode cluster activé
Cette section explique les points de terminaison de découverte et de données dont dispose une instance en mode cluster activé.
Point de terminaison de découverte
Chaque instance dispose d'un point de terminaison de découverte auquel votre client se connecte. Il s'agit d'une combinaison d'une adresse IP et d'un numéro de port. Pour savoir comment trouver le point de terminaison de découverte de votre instance, consultez Afficher le point de terminaison de découverte de votre instance.
Votre client l'utilise également pour la découverte de nœuds. Votre client utilise le point de terminaison de découverte pour récupérer la topologie des nœuds de votre instance afin d'amorcer les clients tiers et de les maintenir à jour en état stable. La topologie de nœuds résultante fournit des points de terminaison de nœuds (combinaisons d'adresses IP et de ports) à mettre en cache en mémoire par votre client tiers. Votre client se charge ensuite des mises à jour et des redirections automatiquement, sans qu'aucune autre modification d'application ne soit requise. Pour en savoir plus sur le comportement de découverte des clients et les bonnes pratiques, consultez Découverte des clients.
Le point de terminaison de découverte est disponibilité élevée, car il est soutenu par plusieurs nœuds dans plusieurs zones pour desservir la topologie des nœuds. La diffusion de la topologie via le point de terminaison est robuste, même en cas de défaillance ou de mise à jour des nœuds de backend.
Votre point de terminaison de détection présente les caractéristiques suivantes :
Le point de terminaison de découverte de votre instance reste inchangé tout au long de son cycle de vie, même pendant la maintenance ou lors de toute autre action que vous effectuez, comme la mise à l'échelle ou la modification du nombre de répliques.
Les points de terminaison des nœuds peuvent changer et être recyclés à mesure que des nœuds sont ajoutés et supprimés au fil du temps. Dans l'idéal, vous devez utiliser un client tiers capable de gérer ces modifications automatiquement grâce aux actualisations et aux redirections de la topologie. Vous trouverez des exemples de clients tiers sur la page Exemples de code de la bibliothèque cliente. Votre application ne doit pas avoir de dépendances ni de suppositions selon lesquelles les points de terminaison de nœud resteront inchangés pour une instance donnée.
Point de terminaison de données
En plus du point de terminaison de découverte, chaque instance pour laquelle le mode cluster est activé dispose d'un point de terminaison de données. Ce point de terminaison est réservé à Memorystore for Valkey pour connecter votre client aux nœuds de l'instance. Par conséquent, ne vous connectez pas directement à ce point de terminaison.
Points de terminaison d'instance pour le mode cluster désactivé
Cette section explique les points de terminaison principal et de lecteur dont dispose chaque instance en mode cluster désactivé.
Point de terminaison principal
Le point de terminaison principal est une adresse IP à laquelle votre application se connecte. Ce point de terminaison dirige le trafic vers le nœud principal actuel. Les connexions au point de terminaison principal peuvent envoyer des requêtes en écriture et en lecture.
Votre point de terminaison principal présente le comportement suivant :
- L'adresse IP de votre point de terminaison principal reste inchangée tout au long du cycle de vie de l'instance. Si le nœud sous-jacent échoue ou subit un basculement automatique, Memorystore pour Valkey ajuste automatiquement l'adresse IP. Les clients n'ont pas besoin d'apporter de modifications au point de terminaison. Toutefois, si des événements imprévus entraînent des échecs de connexion, les clients tentent de rétablir la connexion.
- Si un nœud principal devient l'instance répliquée, les connexions à ce nœud répliqué sont interrompues et Memorystore pour Valkey redirige les nouvelles connexions vers le nouveau nœud principal par le biais d'un basculement automatique. Les clients doivent réessayer les connexions en utilisant un intervalle exponentiel entre les tentatives.
- Si l'instance dispose d'une instance répliquée, le point de terminaison principal présente une disponibilité supérieure à celle du point de terminaison de lecteur. Si deux instances dupliquées sont provisionnées pour l'instance, le point de terminaison principal et le point de terminaison de lecture sont tous deux à haute disponibilité.
Point de terminaison de lecteur
Le point de terminaison du lecteur est une adresse IP à laquelle votre application se connecte. Ce point de terminaison équilibre la charge des connexions entre les instances dupliquées de l'instance de manière uniforme. Les connexions à l'instance dupliquée avec accès en lecture peuvent envoyer des requêtes en lecture, mais pas de requêtes d'écriture. Le point de terminaison de lecteur augmente le débit et isole le trafic du nœud principal. Pour les applications qui nécessitent un accès opérationnel, comme les scripts risqués et les jobs hors connexion, nous vous recommandons d'isoler le trafic du nœud principal à l'aide du point de terminaison du lecteur.
Le point de terminaison de lecteur présente le comportement suivant :
- Même lorsqu'aucune instance dupliquée avec accès en lecture n'est provisionnée pour une instance, Memorystore pour Valkey provisionne l'adresse IP du point de terminaison du lecteur pour permettre l'ajout dynamique d'instances dupliquées avec accès en lecture.
- Si le système ne dispose d'aucune instance répliquée avec accès en lecture disponible vers laquelle acheminer le trafic, une connexion au point de terminaison du lecteur est interrompue. Toutefois, il ne redirigera pas les connexions établies avec le point de terminaison de lecteur vers le nœud principal.
- Si un nœud de réplica devient le nœud principal, les connexions à ce nœud principal sont interrompues et Memorystore pour Valkey redirige les nouvelles connexions vers le nouveau nœud de réplica. Les clients relancent ces connexions à l'aide d'un intervalle exponentiel entre les tentatives.
Pour savoir comment gérer les erreurs courantes lors de la connexion aux points de terminaison du mode cluster désactivé, consultez Gérer les erreurs en mode cluster désactivé.