qdrant-minimize-latency

Guide d'optimisation de la latence des requêtes Qdrant. À utiliser quand quelqu'un dit « la recherche est lente », « comment réduire la latence », « le p99 est trop élevé », « tail latency », « une seule requête est trop lente », « comment accélérer la recherche » ou « pics de latence ».

npx skills add https://github.com/qdrant/skills --skill qdrant-minimize-latency

Mise à l'échelle pour la latence des requêtes

La latence d'une requête unique est déterminée par le composant le plus lent du chemin d'exécution de la requête. Elle est parfois corrélée au débit, mais pas toujours — le débit et la latence sont des directions d'optimisation opposées.

L'optimisation pour une faible latence vise à utiliser la saturation maximale des ressources pour une seule requête, tandis que l'optimisation du débit vise à minimiser l'utilisation de ressources par requête pour permettre plus de requêtes parallèles.

Optimisation des performances pour réduire la latence

  • Augmentez le nombre de segments pour correspondre aux cœurs CPU (default_segment_number: 16) Minimizing latency
  • Gardez les vecteurs quantifiés et HNSW en RAM (always_ram=true)
  • Réduisez hnsw_ef au moment de la requête (échange de la précision pour la vitesse) Search params
  • Utilisez un NVMe local, évitez le stockage attaché au réseau

Pression mémoire et latence

La RAM est la ressource la plus critique pour la latence. Si l'ensemble de travail dépasse la RAM disponible, l'éviction du cache du système d'exploitation provoque une dégradation grave et soutenue de la latence.

  • Augmentez d'abord la RAM verticalement. Critique si l'ensemble de travail >80%.
  • Utilisez la quantification : scalaire (réduction 4x) ou binaire (réduction 16x) Quantization
  • Déplacez les index de payload sur le disque si le filtrage est peu fréquent On-disk payload index
  • Définissez optimizer_cpu_budget pour limiter les CPUs d'optimisation en arrière-plan
  • Planifiez l'indexation : définissez un indexing_threshold élevé pendant les heures de pointe

Mise à l'échelle verticale pour la latence

Une plus grande RAM et un CPU plus rapide réduisent directement la latence. Voir Vertical Scaling pour les directives de dimensionnement des nœuds.

Ce qu'il NE FAUT PAS faire

  • N'attendez pas à optimiser simultanément la latence et le débit sur le même nœud
  • N'utilisez pas peu de grands segments pour les charges de travail sensibles à la latence (chaque segment prend plus de temps à rechercher)
  • N'exécutez pas à >90% de RAM (l'éviction du cache provoque une dégradation grave de la latence qui peut durer des jours)
  • N'ignorez pas l'état de l'optimizer lors du débogage des performances
  • Ne réduisez pas la RAM sans test de charge (l'éviction du cache provoque des incidents de latence durant des jours)

Skills similaires