Configurare la Chunk Cache
Il meccanismo della chunk cache consente a Milvus di precaricare i dati nella cache sul disco rigido locale dei nodi di interrogazione prima che siano necessari. Questo meccanismo migliora significativamente le prestazioni di recupero dei vettori riducendo il tempo necessario per caricare i dati dal disco alla memoria.
Sfondo
Prima di eseguire le interrogazioni per recuperare i vettori, Milvus deve caricare i dati dalla memoria degli oggetti alla memoria cache sul disco rigido locale dei nodi di interrogazione. Si tratta di un processo che richiede molto tempo. Prima che tutti i dati siano caricati, Milvus potrebbe rispondere ad alcune richieste di recupero di vettori con un certo ritardo.
Per migliorare le prestazioni delle query, Milvus fornisce un meccanismo di chunk cache per precaricare i dati dalla memoria degli oggetti nella cache del disco rigido locale prima che siano necessari. Quando viene ricevuta una richiesta di interrogazione, il Segcore controlla innanzitutto se i dati si trovano nella cache, anziché nella memoria degli oggetti. Se i dati sono nella cache, Segcore può recuperarli rapidamente dalla cache e restituire il risultato al client.
Configurare la Chunk Cache
Questa guida fornisce istruzioni su come configurare il meccanismo di chunk cache per un'istanza Milvus. La configurazione varia a seconda del modo in cui si installa l'istanza Milvus.
Per le istanze Milvus installate utilizzando Helm Charts
Aggiungere la configurazione al file
values.yaml
nella sezioneconfig
. Per i dettagli, consultare Configurazione di Milvus con Helm Charts.Per le istanze Milvus installate usando Docker Compose
Aggiungere la configurazione al file
milvus.yaml
utilizzato per avviare l'istanza Milvus. Per i dettagli, fate riferimento a Configurare Milvus con Docker Compose.Per le istanze Milvus installate con Operator
Aggiungere la configurazione alla sezione
spec.components
della risorsa personalizzataMilvus
. Per i dettagli, vedere Configurazione di Milvus con Operator.
Opzioni di configurazione
queryNode:
cache:
warmup: async
Il parametro warmup
determina se Milvus precarica i dati dall'archivio oggetti nella cache sul disco rigido locale dei nodi di interrogazione prima che siano necessari. Il parametro è impostato su disable
. Le opzioni possibili sono le seguenti:
async
: Milvus precarica i dati in modo asincrono in background, il che non influisce sul tempo necessario per caricare una raccolta. Tuttavia, gli utenti potrebbero subire un ritardo nel recupero dei vettori per un breve periodo di tempo dopo il completamento del processo di caricamento. Questa è l'opzione predefinita.sync
: Milvus precarica i dati in modo sincrono, il che può influire sul tempo di caricamento di una collezione. Tuttavia, gli utenti possono eseguire le interrogazioni immediatamente dopo il completamento del processo di caricamento senza alcun ritardo.disable
: Milvus non precarica i dati nella cache di memoria.
Si noti che le impostazioni della cache dei chunk si applicano anche quando vengono inseriti nuovi dati nelle raccolte o vengono ricostruiti gli indici delle raccolte.
DOMANDE FREQUENTI
Come posso determinare se il meccanismo della chunk cache funziona correttamente?
Si consiglia di verificare la latenza di una richiesta di ricerca o di query dopo il caricamento di una raccolta. Se la latenza è significativamente più alta del previsto (ad esempio, diversi secondi), potrebbe indicare che il meccanismo della chunk cache non funziona ancora.
Se la latenza della query rimane elevata per un lungo periodo di tempo. È possibile controllare il throughput dello storage degli oggetti per verificare che la cache dei chunk sia ancora funzionante. In casi normali, la cache chunk funzionante genererà un throughput elevato sullo storage degli oggetti. In alternativa, si può provare la cache chunk in modalità
sync
.