Desempenho

As implementações do IBM Cloud® Databases for Elasticsearch podem ser escaladas para o seu uso, configuradas para ajuste automático de escala sob certas condições de recursos ou escalonadas horizontalmente com mais nós da Elasticsearch. Se estiver ajustando o desempenho da sua implementação, considere alguns fatores.

Monitorando a sua implementação

As implementações do Databases for Elasticsearch oferecem uma integração com o serviço IBM Cloud® Monitoring para monitoramento básico do uso de recurso em sua implementação. Muitas das métricas disponíveis, como uso de disco e as IOPS, são apresentadas para ajudá-lo a configurar o ajuste automático de escala em sua implementação. Observar as tendências em seu uso e configurar o ajuste automático de escala para responder a elas pode ajudar a aliviar problemas de desempenho antes que os seus bancos de dados se tornem instáveis devido ao esgotamento de recursos.

Sharding da Elasticsearch

Ao incluir um índice na Elasticsearch, ela divide os dados em shards e distribui esses shards ao longo dos nós no cluster. A configuração em shard permite que a Elasticsearch execute operações simultâneas em seus dados ao longo de todos os nós. Para obter simultaneidade e desempenho extras, inclua nós no Elasticsearch Ao incluir nós, os seus shards são reequilibrados automaticamente ao longo do cluster para distribuir o uso de recursos ao longo de todos os nós e aumentar o desempenho.

Gerenciamento de Memória

A memória da Elasticsearch é dividida em categorias, tamanho de heap da JVM e memória do sistema. Ela usa o heap para armazenamento em cache interno e o restante da memória do sistema para o sistema operacional, caches do sistema de arquivos e coleta de lixo. Quanto mais memória for alocada para o heap, menos será alocada para o restante do sistema.

As implementações do Databases for Elasticsearch têm a sua política de alocação de memória configurada em 50% de heap e 50% de memória do sistema, com um tamanho de heap máximo de 32 GB. Em alguns casos, é útil escalar a sua implementação acima de 64 GB de RAM, mesmo com o limite de heap, pois a Elasticsearch faz uso do cache do sistema de arquivos e alivia a pressão sobre a utilização de E/S de disco. Você pode configurar o dimensionamento automático para aumentar a memória quando a utilização de E/S do disco atingir um determinado limite.

IOPS de disco

O número de Operações de entrada/saída por segundo (IOPS) é limitado pelo tipo de volume de armazenamento. Os volumes de armazenamento para implementações do Databases for Elasticsearch são provisionados em Volumes do Endurance de armazenamento de bloco na camada de 10 IOPS por GB. Atingir os limites de IOPS pode fazer com que seus bancos de dados respondam lentamente ou pareçam sem resposta.

A indexação usa o disco. Portanto, se seu caso de uso fizer uso intensivo de gravações, sua velocidade de indexação poderá ser limitada pelas IOPS disponíveis para sua implementação. Alguns gargalos podem ser amenizados pelo ajuste de seus índices para uso de disco. Além disso, a procura poderá usar o disco se o seu conjunto de dados de trabalho não se ajustar no cache do sistema de arquivos, o que aumenta a carga de IOPS. Se o seu caso de uso envolver a procura de um grande conjunto de dados, aumentar a memória em sua implementação poderá ajudar a Elasticsearch a depender menos do disco.

Outra coisa a notar é que a política de gerenciamento do sistema de arquivos Lucene padrão é niofs, que permite leituras simultâneas em um arquivo, o que também pode ser restringido por limites de E/S de disco. Informações sobre tipos de armazenamento do sistema de arquivos na Documentação da Elasticsearch.

Se mais IOPS forem necessárias, será possível aumentar o número delas disponível para sua implementação aumentando o espaço em disco. Se você estiver ciente de tendências em sua indexação ou uso que aumentam a E/S de disco, será possível configurar o ajuste automático de escala para aumentar o disco com base nas IOPS.