Prestazioni

Le distribuzioni IBM Cloud® Databases for Elasticsearch possono essere scalato al tuo utilizzo, configurate a autoscala in determinate condizioni di risorsa o scalato orizzontalmente con più nodi Elasticsearch. Se si sta ottimizzando le prestazioni della propria distribuzione, considerare alcuni fattori.

Monitoraggio della distribuzione

Le distribuzioni Databases for Elasticsearch offrono un'integrazione con il servizio IBM Cloud® Monitoring per il monitoraggio di base dell'utilizzo delle risorse sulla propria distribuzione. Molte delle metriche disponibili, come l'utilizzo del disco e IOPS, vengono presentate per aiutarti a configurare autoscaling sulla tua distribuzione. Osservare le tendenze nell'utilizzo e configurare l'autoscaling per rispondere a loro può aiutare ad alleviare i problemi di prestazioni prima che i tuoi database diventino instabili a causa dell'esaurimento delle risorse.

Elasticsearch sharding

Quando si aggiunge un indice a Elasticsearch, si suddivide i dati in frammenti e si diffonde tali frammenti attraverso i nodi nel cluster. La configurazione affilata consente a Elasticsearch di eseguire le operazioni simultane sui propri dati in tutti i nodi. Per ottenere ulteriori simultaneità e prestazioni, aggiungere nodi a Elasticsearch cluster. Quando si aggiungono nodi, i tuoi frammenti vengono ribilanciati automaticamente in tutto il cluster per diffondere l'utilizzo delle risorse su tutti i nodi e aumentando le prestazioni.

Gestione della memoria

La memoria Elasticsearch è suddivisa in categorie, dimensione dell'heap della JVM e memoria di sistema. Utilizza l'heap per la caching interna e il resto della memoria di sistema per il sistema operativo, i cachi del file system e la raccolta dei rifiuti. Più memoria allocata all'heap, la meno viene assegnata al resto del sistema.

Databases for Elasticsearch le distribuzioni hanno la loro policy di allocazione della memoria impostata a 50% di memoria riservata e 50% di sistema, con una dimensione massima di heap di 32 GB. In alcuni casi, è utile scaldare la propria distribuzione sopra i 64 GB di RAM anche con il limite dell'heap come Elasticsearch fa uso della cache del file system e alleviando la pressione sull'utilizzo I/O del disco. È possibile configurare l'autoscaling per aumentare la memoria quando l'utilizzo I/O del disco raggiunge una certa soglia.

IOPS disco

Il numero di operazioni di Input / Output al secondo (IOPS) è limitato dal tipo di volume di archiviazione. I volumi di archiviazione per le implementazioni Databases for Elasticsearch sono forniti su volumi di storage endurance Block nel livello 10 IOPS per GB. Colpire i limiti IOPS può causare i tuoi database per rispondere lentamente o apparire inrispondenti.

L'indicizzazione utilizza il disco, quindi se il tuo caso di utilizzo è di scrittura - pesante, la tua velocità di indicizzazione può essere limitata dall'IOPS disponibile per la tua distribuzione. Alcune strozzature possono essere ameliorate da ottimizzazione degli indici per l'utilizzo del disco. Inoltre, la ricerca può utilizzare il disco se il proprio set di dati di lavoro non si adatta alla cache del file system, aumentando il carico IOPS. Se il tuo caso di utilizzo implica la ricerca di un dataset di grandi dimensioni, aumentare la memoria sulla propria distribuzione può aiutare Elasticsearch a contare meno su disco.

Un'altra cosa da notare è la policy di gestione del file system di Lucene predefinita è niofs, che consente la lettura simultanea su un file, che può essere vincolato anche dai limiti di I/O del disco. Informazioni sui tipi di archiviazione del file system nella documentazione Elasticsearch.

Se hai bisogno di più IOPS, puoi aumentare il numero IOPS disponibile per la tua distribuzione aumentando lo spazio su disco. Se si è a conoscenza delle tendenze dell'indicizzazione o dell'utilizzo che aumenta l'I/O del disco, è possibile configurare l'autoscaling per aumentare il disco in base all'IOPS.