Configuration du cache de morceaux
Le mécanisme de cache de morceaux permet à Milvus de précharger les données en cache sur le disque dur local des nœuds d'interrogation avant qu'elles ne soient nécessaires. Ce mécanisme améliore considérablement les performances de recherche vectorielle en réduisant le temps nécessaire au chargement des données du disque vers la mémoire.
Contexte
Avant d'effectuer des requêtes pour récupérer des vecteurs, Milvus doit charger les données du stockage d'objets dans le cache de la mémoire sur le disque dur local des nœuds d'interrogation. Ce processus prend beaucoup de temps. Avant que toutes les données ne soient chargées, Milvus peut répondre à certaines demandes d'extraction de vecteurs avec un certain retard.
Pour améliorer les performances des requêtes, Milvus fournit un mécanisme de cache de morceaux pour précharger les données du stockage d'objets dans le cache sur le disque dur local avant qu'elles ne soient nécessaires. Lorsqu'une requête est reçue, le Segcore vérifie d'abord si les données se trouvent dans le cache, au lieu du stockage d'objets. Si les données sont dans le cache, le Segcore peut rapidement les extraire du cache et renvoyer le résultat au client.
Configurer le Chunk Cache
Ce guide fournit des instructions sur la manière de configurer le mécanisme de cache de morceaux pour une instance Milvus. La configuration varie en fonction du mode d'installation de l'instance Milvus.
Pour les instances Milvus installées à l'aide de Helm Charts
Ajouter la configuration au fichier
values.yaml
dans la sectionconfig
. Pour plus de détails, voir Configurer Milvus avec Helm Charts.Pour les instances Milvus installées à l'aide de Docker Compose
Ajouter la configuration au fichier
milvus.yaml
que vous avez utilisé pour démarrer l'instance Milvus. Pour plus de détails, voir Configurer Milvus avec Docker Compose.Pour les instances Milvus installées à l'aide de Operator
Ajouter la configuration à la section
spec.components
de la ressource personnaliséeMilvus
. Pour plus de détails, voir Configurer Milvus avec Operator.
Options de configuration
queryNode:
cache:
warmup: async
Le paramètre warmup
détermine si Milvus précharge les données du stockage d'objets dans le cache du disque dur local des nœuds de requête avant qu'elles ne soient nécessaires. La valeur par défaut de ce paramètre est disable
. Les options possibles sont les suivantes :
async
: Milvus précharge les données de manière asynchrone en arrière-plan, ce qui n'affecte pas le temps de chargement d'une collection. Toutefois, les utilisateurs peuvent subir un retard lors de la récupération des vecteurs pendant une courte période après la fin du processus de chargement. Il s'agit de l'option par défaut.sync
: Milvus précharge les données de manière synchrone, ce qui peut affecter le temps de chargement d'une collection. Toutefois, les utilisateurs peuvent effectuer des requêtes immédiatement après la fin du processus de chargement, sans délai.disable
: Milvus ne précharge pas les données dans le cache mémoire.
Notez que les paramètres du cache de morceaux s'appliquent également lorsque de nouvelles données sont insérées dans les collections ou que les index des collections sont reconstruits.
FAQ
Comment puis-je déterminer si le mécanisme de cache de morceaux fonctionne correctement ?
Il est conseillé de vérifier la latence d'une recherche ou d'une requête après le chargement d'une collection. Si le temps de latence est beaucoup plus long que prévu (par exemple, plusieurs secondes), cela peut indiquer que le mécanisme de cache par morceaux fonctionne encore.
Si la latence de la requête reste élevée pendant une longue période. Vous pouvez vérifier le débit du stockage d'objets pour vous assurer que le cache de morceaux fonctionne toujours. Dans des cas normaux, le cache de morceaux qui fonctionne génère un débit élevé sur le stockage d'objets. Vous pouvez également essayer le cache de morceaux en mode
sync
.