Milvus
Zilliz
홈페이지
  • 사용자 가이드
  • Home
  • Docs
  • 사용자 가이드

  • 스토리지 최적화

  • 계층형 스토리지

  • 워밍업

워밍업Compatible with Milvus 2.6.4+

Milvus에서 웜업은 콜드 데이터에 처음 액세스할 때 발생하는 첫 번째 히트 지연 시간을 완화하여 계층형 스토리지를 보완합니다. 일단 구성되면, 워밍업은 세그먼트가 쿼리 가능해지기 전에 선택한 유형의 필드 또는 인덱스를 캐시에 미리 로드하여 자주 액세스하는 데이터를 로드 후 즉시 사용할 수 있도록 합니다.

워밍업이 필요한 이유

계층형 스토리지의지연 로드는 초기에 메타데이터만 로드하여 효율성을 개선합니다. 하지만 필요한 청크나 인덱스를 오브젝트 스토리지에서 가져와야 하므로 콜드 데이터에 대한 첫 번째 쿼리에서 지연 시간이 발생할 수 있습니다.

워밍업은 세그먼트 초기화 중에 중요한 데이터를 사전에 캐싱하여 이 문제를 해결합니다.

특히 다음과 같은 경우에 유용합니다:

  • 특정 스칼라 인덱스가 필터 조건에서 자주 사용되는 경우.

  • 벡터 인덱스는 검색 성능에 필수적이며 즉시 준비되어야 합니다.

  • 쿼리 노드 재시작 또는 새 세그먼트 로드 후 콜드 스타트 지연은 용납할 수 없습니다.

반면, 자주 쿼리되지 않는 필드나 인덱스에는 워밍업을 사용하지 않는 것이 좋습니다. 워밍업을 비활성화하면 세그먼트 로드 시간이 단축되고 캐시 공간이 절약되므로 큰 벡터 필드나 중요하지 않은 스칼라 필드에 이상적입니다.

구성

워밍업은 milvus.yamlqueryNode.segcore.tieredStorage.warmup 에서 제어됩니다. 스칼라 필드, 스칼라 인덱스, 벡터 필드 및 벡터 인덱스에 대해 개별적으로 구성할 수 있습니다. 각 대상은 두 가지 모드를 지원합니다:

모드

설명

일반적인 시나리오

sync

세그먼트를 쿼리할 수 있게 되기 전에 미리 로드합니다. 로드 시간은 약간 증가하지만 첫 번째 쿼리에는 지연 시간이 발생하지 않습니다.

검색에 사용되는 고빈도 스칼라 인덱스나 주요 벡터 인덱스와 같이 즉시 사용 가능해야 하는 성능에 중요한 데이터에 사용합니다.

disable

사전 로딩 건너뛰기. 세그먼트를 더 빠르게 쿼리할 수 있지만 첫 번째 쿼리에서 온디맨드 로드가 트리거될 수 있습니다.

원시 벡터 필드나 중요하지 않은 스칼라 필드와 같이 자주 액세스하지 않거나 큰 데이터에 사용합니다.

예제 YAML:

queryNode:
  segcore:
    tieredStorage:
      warmup:
        # options: sync, disable.
        # Specifies the timing for warming up the Tiered Storage cache.
        # - `sync`: data will be loaded into the cache before a segment is considered loaded.
        # - `disable`: data will not be proactively loaded into the cache, and loaded only if needed by search/query tasks.
        # Defaults to `sync`, except for vector field which defaults to `disable`.
        scalarField: sync
        scalarIndex: sync
        vectorField: disable # cache warmup for vector field raw data is by default disabled.
        vectorIndex: sync

매개변수

설명

권장 사용 사례

scalarField

sync | disable

스칼라 필드 데이터를 미리 로드할지 여부를 제어합니다.

스칼라 필드가 작고 필터에서 자주 액세스하는 경우에만 sync 을 사용하세요. 그렇지 않으면 disable 로드 시간을 줄이려면.

scalarIndex

sync | disable

스칼라 인덱스가 미리 로드되는지 여부를 제어합니다.

빈번한 필터 조건이나 범위 쿼리와 관련된 스칼라 인덱스에는 sync 을 사용하세요.

vectorField

sync | disable

벡터 필드 데이터의 사전 로드 여부를 제어합니다.

일반적으로 캐시를 많이 사용하지 않으려면 disable. 검색 직후 원시 벡터를 검색해야 하는 경우(예: 벡터 리콜을 통한 유사성 결과)에만 sync 을 사용하도록 설정합니다.

vectorIndex

sync | disable

벡터 인덱스의 사전 로드 여부를 제어합니다.

검색 지연에 중요한 벡터 인덱스의 경우 sync 을 사용합니다. 배치 또는 저빈도 워크로드에서는 세그먼트 준비 속도를 높이려면 disable 을 사용하세요.

모범 사례

워밍업은 초기 로드에만 영향을 줍니다. 캐시된 데이터가 나중에 제거되면 다음 쿼리에서 필요에 따라 다시 로드됩니다.

  • sync 을 과도하게 사용하지 마세요. 너무 많은 필드를 미리 로드하면 로드 시간과 캐시 압력이 증가합니다.

  • 자주 액세스하는 필드와 인덱스에 대해서만 워밍업을 보수적으로 사용하도록 설정하세요.

  • 쿼리 지연 시간 및 캐시 메트릭을 모니터링한 다음 필요에 따라 사전 로딩을 확장합니다.

  • 혼합 워크로드의 경우, 성능에 민감한 컬렉션에는 sync, 용량 중심 컬렉션에는 disable 을 적용하세요.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
피드백

이 페이지가 도움이 되었나요?