Configurar o Chunk Cache
O mecanismo de cache de pedaços permite que o Milvus pré-carregue dados no cache no disco rígido local dos nós de consulta antes de serem necessários. Este mecanismo melhora significativamente o desempenho da recuperação de vectores, reduzindo o tempo necessário para carregar os dados do disco para a memória.
Contexto
Antes de efetuar consultas para obter vectores, o Milvus tem de carregar os dados do armazenamento de objectos para a memória cache no disco rígido local dos nós de consulta. Este é um processo demorado. Antes de todos os dados estarem carregados, o Milvus pode responder a alguns pedidos de recuperação de vectores com atraso.
Para melhorar o desempenho da consulta, o Milvus fornece um mecanismo de cache de pedaços para pré-carregar dados do armazenamento de objectos para a cache no disco rígido local antes de serem necessários. Quando é recebido um pedido de consulta, o Segcore verifica primeiro se os dados estão na cache, em vez de no armazenamento de objectos. Se os dados estiverem no cache, o Segcore pode recuperá-los rapidamente do cache e retornar o resultado para o cliente.
Configurar o cache de pedaços
Este guia fornece instruções sobre como configurar o mecanismo de cache de pedaços para uma instância do Milvus. A configuração varia de acordo com a maneira como você instala a instância do Milvus.
Para instâncias do Milvus instaladas usando Helm Charts
Adicione a configuração ao ficheiro
values.yaml
na secçãoconfig
. Para obter detalhes, consulte Configurar o Milvus com Helm Charts.Para instâncias do Milvus instaladas usando o Docker Compose
Adicione a configuração ao ficheiro
milvus.yaml
que utilizou para iniciar a instância do Milvus. Para obter detalhes, consulte Configurar o Milvus com o Docker Compose.Para instâncias do Milvus instaladas com o Operator
Adicione a configuração à secção
spec.components
do recurso personalizadoMilvus
. Para obter detalhes, consulte Configurar o Milvus com o Operator.
Opções de configuração
queryNode:
cache:
warmup: async
O parâmetro warmup
determina se o Milvus pré-carrega dados do armazenamento de objectos para a cache no disco rígido local dos nós de consulta antes de serem necessários. A predefinição deste parâmetro é disable
. As opções possíveis são as seguintes:
async
: O Milvus pré-carrega os dados de forma assíncrona em segundo plano, o que não afecta o tempo necessário para carregar uma coleção. No entanto, os utilizadores podem sentir um atraso na obtenção de vectores durante um curto período de tempo após a conclusão do processo de carregamento. Esta é a opção predefinida.sync
: O Milvus pré-carrega os dados de forma síncrona, o que pode afetar o tempo necessário para carregar uma coleção. No entanto, os utilizadores podem efetuar consultas imediatamente após a conclusão do processo de carregamento sem qualquer atraso.disable
: O Milvus não faz o pré-carregamento de dados na cache de memória.
Note que as configurações de cache de pedaços também se aplicam quando novos dados são inseridos nas coleções ou quando os índices das coleções são reconstruídos.
PERGUNTAS FREQUENTES
Como posso determinar se o mecanismo de cache de pedaços está a funcionar corretamente?
Aconselha-se a verificar a latência de um pedido de pesquisa ou consulta depois de carregar uma coleção. Se a latência for significativamente maior do que o esperado (por exemplo, vários segundos), isso pode indicar que o mecanismo de cache de partes ainda está funcionando.
Se a latência da consulta permanecer alta por um longo tempo. Você pode verificar a taxa de transferência do armazenamento de objetos para garantir que o cache de bloco ainda esteja funcionando. Em casos normais, o cache de bloco em funcionamento gerará uma alta taxa de transferência no armazenamento de objetos. Como alternativa, você pode simplesmente tentar o cache de bloco no modo
sync
.