Ajustando a escala de disco, de memória e de CPU
É possível ajustar manualmente a quantia de recursos disponíveis para a sua implementação do IBM Cloud® Messages for RabbitMQ para adequar a sua carga de trabalho e o tamanho de seus dados.
Detalhamento de recurso
As implementações do Messages for RabbitMQ têm três membros de dados em um cluster e os recursos são alocados para todos os membros igualmente. Por exemplo, o armazenamento mínimo de uma implementação do RabbitMQ é de 3072 MB, o que equivale a um tamanho inicial de 1024 MB por membro. A RAM mínima para uma implementação do RabbitMQ é de 3072 MB, o que equivale a uma alocação inicial de 1024 MB por membro.
O faturamento é baseado na quantidade total de recursos alocados para o serviço.
Uso de Disco
O armazenamento mostra a quantidade de espaço em disco que é alocada para o seu serviço. Cada membro recebe uma parte igual do espaço alocado. Os seus dados são replicados ao longo de três membros de dados no cluster do RabbitMQ. Portanto, a quantia total de armazenamento que você usa é aproximadamente três vezes o tamanho do seu conjunto de dados.
A alocação de disco afeta o desempenho do disco, com discos maiores tendo desempenho superior. O desempenho das operações de entrada/saída por segundo (IOPS) da linha de base para o disco é de 10 IOPS para cada GB. Atingir os limites de IOPS consistentemente causa atrasos de rendimento e de processamento de mensagens, o que pode ser aliviado aumentando a capacidade de espaço em disco.
Não é possível diminuir a capacidade do armazenamento. Se o seu tamanho de conjunto de dados tiver diminuído, será possível recuperar espaço fazendo backup e restaurando para uma nova implementação.
RAM
O RabbitMQ limita a publicação quando detecta que está usando 40% de memória disponível para evitar que o uso de memória cresça incontrolavelmente durante o aumento de atividade. Se você descobrir que você atinge regularmente o limite, é possível alocar mais memória para a sua implementação. Incluir memória na alocação total inclui memória nos membros igualmente.
Rebalanceamento de fila
Se você notar que um nó do RabbitMQ está ocupando significativamente mais recursos do que outro, é provável que as filas não estejam distribuídas uniformemente entre os nós. Isso pode acontecer pelas razões possíveis a seguir:
- Você está conectado a somente um dos VIPs e todas as filas são criadas em um único nó.
- Houve uma reinicialização contínua, que move as filas para o nó que foi reiniciado primeiro.
Acionar a distribuição uniforme de filas causa carga até que todas as filas sejam distribuídas uniformemente de modo que essa ação não deve ser executada enquanto a implantação estiver sob pressão ou ser ultrapassada.
Para distribuir uniformemente as filas, é possível usar a API de Gerenciamento do RabbitMQ para executar uma chamada https POST
/api/rebalance/queues
com relação à sua implementação.
Núcleos dedicados
É possível ativar ou aumentar a alocação de CPU para a implementação. Com núcleos dedicados, o seu grupo de recursos recebe um host de locatário único com uma reserva de compartilhamentos de CPU. Em seguida, é garantido à sua implementação o número mínimo de CPUs especificadas. O padrão sem núcleos dedicados usa recursos de cálculo em hosts compartilhados. Indo de um 0 para >0 provisões de contagem de CPU e move a sua implementação para novos hosts e os seus bancos de dados são reiniciados como parte dessa movimentação. Indo de >0 a uma contagem de CPU 0, move a sua implementação para um host compartilhado e também reinicia os seus bancos de dados como parte da movimentação.
Considerações de ajuste de escala
-
O ajuste de escala para cima de sua implementação pode fazer com que o seu RabbitMQ seja reiniciado. Caso seja necessário mover sua implementação com escala ajustada para um host com mais capacidade, então os bancos de dados serão reiniciados como parte da transferência.
-
Diminuir a capacidade de RAM ou de CPU não aciona reinícios.
-
Não é possível diminuir a capacidade do disco.
-
Algumas operações de ajuste de escala podem ter execuções mais longas do que outras. A ativação de núcleos dedicados move a sua implementação para o seu próprio host e pode demorar mais do que apenas incluir mais núcleos. Da mesma forma, aumentar drasticamente a CPU, a RAM ou o disco pode levar mais tempo do que aumentos menores para dar conta de provisionar mais recursos de hardware subjacentes.
-
As operações de ajuste de escala são registradas no IBM Cloud® Activity Tracker.
-
Em caso de tendências consistentes no uso de recursos ou para configurar o ajuste de escala quando determinados limites de recursos forem atingidos, consulte Ajuste automático de escala.
Ajuste de escala por meio da IU
Uma representação visual de seus membros de dados e suas alocações de recursos está disponível na guia Recursos da página Gerenciar de sua implementação.
{: caption="Figura 1. O painel Escalar recursos em Recursos" caption-side="bottom"}
Ajuste a régua de controle para aumentar ou diminuir os recursos que são alocados para o seu serviço. A régua de controle controla quanto de memória ou de disco é alocado por membro. A IU atualmente usa uma resolução com mais granularidade de incrementos de 8 GB para disco e incrementos de 1 GB para memória. A IU mostra o total de memória ou de disco alocado para a posição da régua de controle. Clique em Escalar para acionar as operações de ajuste de escala e retornar para a visão geral do painel.
Recursos e ajuste de escala na CLI
O plug-in dos bancos de dados em nuvem da CLI da IBM Cloud suporta a visualização e o ajuste de escala dos recursos em sua implementação. Use o comando cdb deployment-groups
para ver as informações atuais de recurso para o seu serviço, incluindo quais grupos de recursos são ajustáveis. Para escalar qualquer um dos grupos de recursos disponíveis, use o comando cdb deployment-groups-set
.
Por exemplo, o comando para visualizar os grupos de recursos para uma implementação denominada "implementação de exemplo":
ibmcloud cdb deployment-groups example-deployment
Isso produz a saída:
Group member
Count 3
|
+ Memory
| Allocation 3072mb
| Allocation per member 1024mb
| Minimum 3072mb
| Step Size 384mb
| Adjustable true
|
+ CPU
| Allocation 0
| Allocation per member 0
| Minimum 9
| Step Size 3
| Adjustable true
|
+ Disk
| Allocation 3072mb
| Allocation per member 1024mb
| Minimum 3072mb
| Step Size 3072mb
| Adjustable true
A implementação tem três membros, com 3072 MB de disco de RAM alocados no total. A alocação "por membro" é de 1024 MB de RAM e 1024 MB de disco. O valor mínimo é o mínimo da alocação total que pode ser configurada. O tamanho da etapa é a menor quantia pela qual a alocação total pode ser ajustada.
O comando cdb deployment-groups-set
permite que a RAM total ou a alocação de disco total seja configurada, em MB. Por exemplo, para escalar a memória da "implementação de exemplo" para 2048 MB de RAM para cada membro de
memória (para uma memória total de 6144 MB), você usa o comando:
ibmcloud cdb deployment-groups-set example-deployment member --memory 6144
Ajuste de escala na API
O Terminal de Fundação mostrado no painel Visão geral do seu serviço fornece a URL base para acessar essa implementação por meio da API. Use-o com o terminal /groups
se você precisa gerenciar ou automatizar o ajuste
de escala programaticamente.
Para visualizar os recursos atuais e escaláveis em uma implementação,
curl -X GET -H "Authorization: Bearer $APIKEY" 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups'
Para escalar a memória de uma implementação para 2048 MB de RAM para cada membro de memória (para uma memória total de 6144 MB).
curl -X PATCH 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/groups/member' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"memory": {
"allocation_mb": 6144
}
}'
Para obter mais informações, consulte a Referência de API.