qdrant-minimize-latency

Par github · awesome-copilot

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/github/awesome-copilot --skill qdrant-minimize-latency

Optimisation de la latence des requêtes

La latence d'une seule requête est déterminée par le composant le plus lent dans le 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 une saturation maximale des ressources pour une seule requête, tandis que l'optimisation du débit vise à minimiser l'utilisation des ressources par requête pour permettre plus de requêtes parallèles.

Tuning des performances pour une latence plus faible

  • Augmentez le nombre de segments pour correspondre aux cœurs CPU (default_segment_number: 16) Minimizing latency
  • Conservez les vecteurs quantifiés et HNSW en RAM (always_ram=true)
  • Réduisez hnsw_ef au moment de la requête (échangez le rappel contre 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 la working set dépasse la RAM disponible, l'éviction du cache du système d'exploitation provoque une dégradation sévère et soutenue de la latence.

  • Augmentez verticalement la RAM en premier. Critique si la working set >80%.
  • Utilisez la quantification : scalaire (réduction 4x) ou binaire (réduction 16x) Quantization
  • Déplacez les index de payload sur 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

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

Ce qu'il NE FAUT PAS faire

  • Ne vous 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 workloads sensibles à la latence (chaque segment prend plus de temps à rechercher)
  • Ne fonctionnez pas à >90% de RAM (l'éviction du cache provoque une dégradation sévère 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 verticalement la RAM sans test de charge (l'éviction du cache provoque des incidents de latence durant plusieurs jours)

Skills similaires