INFO [HintsDispatcher:416] 2024-02-12 01:42:41.180 NoSpamLogger.java:91 - Uso máximo de memória atingido (536870912), não é possível alocar o pedaço de 1048576
#Estamos obtendo as informações acima nos logs. Além disso, estamos enfrentando alertas de latência (Condição: mais de 2 segundos com intervalo de 5 minutos). Existe alguma relação entre a latência e esta INFO no Log?
Um aumento em file_cache_size_in_mb poderia ajudar aqui de qualquer maneira ou a condição parece muito restrita e podemos expandir isso (por exemplo, 5 segundos em 5 minutos). Nenhuma reclamação sobre problemas de latência do lado do aplicativo no momento.
A mensagem que você compartilhou está relacionada à falha na alocação ao cache de blocos, que funciona como um cache de página nativo do Cassandra para armazenar blocos SSTable na memória.
Embora não seja uma preocupação imediata, está indiretamente relacionado às latências de leitura, mas não às latências de gravação - o objetivo do cache de blocos é acelerar as leituras, permitindo que Cassandra leia pedaços de dados da memória fora do heap, em vez do disco, o que geralmente é mais rápido - portanto, cada vez que você vê esta mensagem, é uma oportunidade perdida de acelerar uma solicitação de leitura lendo dados da memória.
Se você vir a mensagem compartilhada com frequência, significa que o nó não pode liberar espaço continuamente no cache de blocos na mesma taxa que as solicitações de leitura exigem que novos dados sejam alocados nele. Em outras palavras, aumentar o tamanho do cache de blocos conforme você considerou pode ajudar, mas apenas na medida em que você dimensioná-lo igual ou maior que o volume de dados importantes que estão sendo lidos além dos recursos de realocação dos nós, o que pode ser complicado se os clientes causar períodos de leitura intensos. Isso requer algumas tentativas e erros para acertar.
Se as latências de gravação também forem afetadas, eu procuraria outro lugar. Para altas latências em gravações, os primeiros lugares que eu procuraria seriam na atividade de coleta de lixo, iowait na unidade de log de commit e utilização da CPU, mas esses problemas podem vir de várias fontes diferentes.