Qdrant Monitoring Debugging

作者 qdrant6a03d0ce8f55無授權條款收錄於 2026年10月8日更新於 2026年10月8日

Diagnoses Qdrant production issues using metrics and observability tools. Use when someone reports 'optimizer stuck', 'indexing too slow', 'memory too high', 'OOM crash', 'queries are slow', 'latency spike', or 'search was fast now it's slow'. Also use when performance degrades without obvious config changes.

僅含說明DevOps & Cloud
AI 產生的概覽

使用指標與可觀測性端點診斷 Qdrant 生產問題,例如最佳化器卡住、記憶體過高、OOM 崩潰與查詢緩慢。

功能
提供 Qdrant 向量資料庫維運的排查指南,涵蓋最佳化器狀態、記憶體用量與查詢延遲。它指向 optimizations、metrics 與 telemetry 等具體端點,並說明如何區分常駐記憶體與頁快取。也列出常見根因以及除錯期間應避免的做法。
適用情境
當有人回報最佳化器卡住、索引過慢、記憶體過高、OOM 崩潰、查詢緩慢或延遲飆升時使用。也適用於效能在沒有明顯設定變更的情況下變差的情況。
執行需求
無需指令碼或套件;需要存取正在執行的 Qdrant 執行個體及其指標、遙測與集合端點。

How to Debug Qdrant with Metrics

First check optimizer status. Most production issues trace back to active optimizations competing for resources. If optimizer is clean, check memory, then request metrics.

Optimizer Stuck or Too Slow

Use when: optimizer running for hours, not finishing, or showing errors.

  • Use /collections/{collection_name}/optimizations endpoint (v1.17+) to check status Optimization monitoring
  • Query with optional detail flags: ?with=queued,completed,idle_segments
  • Returns: queued optimizations count, active optimizer type, involved segments, progress tracking
  • Web UI has an Optimizations tab with timeline view and per-task duration metrics Web UI
  • If optimizer_status shows an error in collection info, check logs for disk full or corrupted segments
  • Large merges and HNSW rebuilds legitimately take hours on big datasets. Check progress before assuming it's stuck.

Memory Seems Too High

Use when: memory exceeds expectations, node crashes with OOM, or memory keeps growing.

  • Process memory metrics available via /metrics (RSS, allocated bytes, page faults)
  • Qdrant uses two types of RAM: resident memory (data structures, quantized vectors) and OS page cache (cached disk reads). Page cache filling available RAM is normal. Memory article
  • If resident memory (RSSAnon) exceeds 80% of total RAM, investigate
  • Check /telemetry for per-collection breakdown of point counts and vector configurations
  • Estimate expected memory: num_vectors * dimensions * 4 bytes * 1.5 for vectors, plus payload and index overhead Capacity planning
  • Common causes of unexpected growth: quantized vectors pinned in RAM (memory: pinned on Qdrant 1.19 or newer, always_ram: true on 1.18 or older), too many payload indexes, large max_segment_size during optimization

Queries Are Slow

Use when: queries slower than expected and you need to identify the cause.

  • Track rest_responses_avg_duration_seconds and rest_responses_max_duration_seconds per endpoint
  • Use histogram metric rest_responses_duration_seconds (v1.8+) for percentile analysis in Grafana
  • Equivalent gRPC metrics with grpc_responses_ prefix
  • Check optimizer status first. Active optimizations compete for CPU and I/O, degrading search latency.
  • Check segment count via collection info. Too many unmerged segments after bulk upload causes slower search.
  • Compare filtered vs unfiltered query times. Large gap means missing payload index. Payload index

What NOT to Do

  • Ignore optimizer status when debugging slow queries (most common root cause)
  • Assume memory leak when page cache fills RAM (normal OS behavior)
  • Make config changes while optimizer is running (causes cascading re-optimizations)
  • Blame Qdrant before checking if bulk upload just finished (unmerged segments)

來源與署名

來源:qdrant/skills位於skills/qdrant-monitoring/debugging提交6a03d0c

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架