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 meilleur type de nœud pour 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.
Le type de nœud standard-small
vous permet de provisionner de petites instances et de les faire évoluer par petits incréments, potentiellement à moindre coût par rapport aux autres types de nœuds. standard-small
offre également l'avantage de répartir votre espace de clés sur un plus grand nombre de nœuds avec un nombre total de processeurs virtuels 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.
Nous vous recommandons de choisir le type de nœud highmem-xlarge
uniquement si vous avez besoin d'une capacité d'instance supérieure à celle fournie par highmem-medium
. Bien que le type de nœud highmem-xlarge
soit quatre fois plus grand que le type highmem-medium
, les performances ne sont pas quatre fois supérieures, car les performances de Valkey 7.2 ne sont pas linéaires lorsque des processeurs virtuels sont ajoutés à des nœuds de plus en plus grands (scaling vertical). Au lieu de cela, pour obtenir de meilleures performances en termes de prix, vous devez effectuer effectuer un scaling horizontal en ajoutant des nœuds à une instance.
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 parmi les quatre disponibles :
Capacité de l'espace de clés et surcharge réservée
Type de nœud | Capacité d'espace de clés accessible en écriture par défaut | Capacité totale des nœuds |
---|---|---|
shared-core-nano | 1,12 Go | 1,4 Go |
standard-small | 5,2 Go | 6,5 Go |
highmem-medium | 10,4 Go | 13 Go |
highmem-xlarge | 46,4 Go | 58 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 pour la lecture et l'é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 quel espace de stockage disposez-vous ? Reportez-vous à la colonne Capacité de l'espace de clés accessible en écriture par défaut du tableau précédent. Cette section 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
maxmemory
sur 100 %. Toutefois, ne recommandez pas de choisir une valeurmaxmemory
supérieure au paramètre par défaut.Le type de nœud
shared-core-nano
est 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 maximal de clients | Mémoire maximale pour les clients (configuration maxmemory-clients) |
---|---|---|---|---|
shared-core-nano | 0,5 | Non | 5 000 | 12 % |
standard-small | 2 | Oui | 16 000 (par défaut) La valeur maximale est de 32 000 | 7 % |
highmem-medium | 2 | Oui | 32 000 (par défaut) La valeur maximale est de 64 000 | 7 % |
highmem-xlarge | 8 | Oui | 64 000 | 4 % |
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 effectuer un scaling vertical d'une instance, remplacez son type de nœud par l'un des types de nœuds 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 écrire des 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 de 1,4 Go, 6,5 Go, 13 Go ou 58 Go. La capacité d'écriture minimale n'est pas affectée par le nombre de réplicas que vous choisissez.
Capacité d'écriture maximale
Type et taille du nœud | Capacité maximale en mode cluster désactivé | Capacité maximale en mode cluster activé avec une forme d'instance de 250 nœuds principaux et 0 réplique par nœud | Capacité maximale en mode cluster activé pour une forme d'instance de 125 nœuds principaux et 1 réplique par nœud | Capacité maximale en mode cluster activé pour une forme d'instance de 83 nœuds principaux et 2 répliques par nœud |
---|---|---|---|---|
shared-core-nano : 1,4 Go | 1,12 Go | 350 Go | 175 Go | 116,2 Go |
standard-small : 6,5 Go | 5,2 Go | 1 625 Go | 812,5 Go | 539,5 Go |
highmem-medium : 13 Go | 10,4 Go | 3 250 Go | 1 625 Go | 1 079 Go |
highmem-xlarge : 58 Go | 46,4 Go | 14 500 Go | 7 250 Go | 4 814 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étection de votre instance, consultez Afficher le point de terminaison de détection 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 obtenue fournit des points de terminaison de nœuds (combinaisons d'adresse IP et de port) à mettre en cache en mémoire par votre client tiers. Votre client s'occupe ensuite des mises à jour et des redirections automatiquement, sans qu'aucune autre modification de l'application ne soit nécessaire. 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 topologie de diffusion 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 le scaling ou la modification du nombre de réplicas.
Les points de terminaison des nœuds peuvent changer et être réutilisé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 de la topologie et aux redirections. 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
Chaque instance dispose également d'un point de terminaison de données Private Service Connect que Memorystore pour Valkey utilise pour la connexion client. Ne vous connectez pas directement à ce point de terminaison. Memorystore pour Valkey utilise plutôt ce point de terminaison pour connecter votre client aux nœuds de votre instance.
Points de terminaison des instances 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. Aucune modification n'est requise pour les clients avec le 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 via un basculement automatique. Les clients doivent réessayer d'établir une connexion en utilisant l'intervalle exponentiel entre les tentatives.
- Si l'instance dispose d'une instance dupliqué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 lecteur 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 du 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 en utilisant le 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 au point de terminaison du 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 à des points de terminaison en mode cluster désactivé, consultez Gérer les erreurs en mode cluster désactivé.