Guia de operações do QPID

O Edge para nuvem privada versão 4.52.02 é fornecido com o Qpid Broker-J 8.0.6. Nesta página, descrevemos as considerações de memória e disco para o componente apigee-qpidd do Edge para nuvem privada (com agente baseado em Java). As seções abaixo se aplicam especificamente ao caso de uso do Qpid da Apigee e explicam como ajustar o Qpid usando os mecanismos de configuração da Apigee.

Qpid na Apigee

Na Apigee, o Qpid é usado em dois fluxos de trabalho principais:

  • Análise
  • Monetização

Em ambos os fluxos de trabalho, o processador de mensagens gera mensagens, que são coletadas em lotes e enviadas ao Qpid. Para o Analytics, as mensagens são lidas pelo Qpid-server. Para monetização, elas são lidas pelo Rating Server (parte do management-server). Depois de lidas, as mensagens em lote são desagrupadas e ingeridas.

As seções a seguir descrevem as configurações recomendadas para memória e disco com Qpid. Essas configurações são baseadas em uma única mensagem de 2 KB para o Analytics ou a monetização. Com um tamanho de lote padrão de 50, cada mensagem no Qpid teria aproximadamente 100 KB. A Apigee permite que os proxies modifiquem e adicionem outras informações a uma mensagem (análise ou monetização). Em casos extremos, isso pode mudar significativamente o tamanho de uma única mensagem e da mensagem geral em lote no Qpid. Embora as recomendações gerais sobre memória e disco nas seções abaixo sejam verdadeiras mesmo nesses casos, pode ser necessário realizar outros ajustes no Qpid para garantir operações sem problemas.

Memória

O Qpid Broker usa dois tipos de memória: fora do heap e de heap. O Qpid armazena mensagens na memória fora do heap e usa memória de heap para tarefas internas, mensagens diretas para filas e trocas etc. Na maioria das circunstâncias, a Apigee recomenda que você mantenha uma proporção de 3:1 entre memória fora do heap e de heap para o Qpid Broker.

As mensagens na memória fora do heap persistem no disco. Além disso, se a utilização total da memória fora do heap violar um determinado limite, o Qpid será configurado para transferir as mensagens para o disco.

Por padrão, a Apigee calcula a memória de heap e fora do heap do Qpid Broker com base na memória disponível no nó. Os scripts da Apigee têm um limite flexível de 4 GB combinados para o heap e a memória fora do heap do Qpid Broker. Se você quiser substituir esses limites, use as duas configurações abaixo para definir seus próprios valores para a memória heap do Qpid e a memória fora do heap.

  • Configuração para memória de heap: bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
  • Configuração para memória fora do heap: bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m

Consulte Como mudar uma configuração Qpid para mais informações.

Para mais informações, consulte Referência do Apache Qpid para memória.

Disco

O diretório de dados do Qpid Broker é $APIGEE_ROOT/data/apigee-qpidd. Os registros do Qpid Broker são armazenados em $APIGEE_ROOT/var/log/apigee-qpidd.

O desempenho do sistema de arquivos que hospeda o diretório de dados é fundamental para o desempenho do agente como um todo. Para ter o melhor desempenho, escolha um dispositivo que tenha baixa latência e que não seja usado por outros aplicativos.

O Qpid Broker mantém as mensagens no diretório de dados. Por padrão, o agente aceitará mensagens até que o sistema de arquivos que hospeda o diretório de dados esteja 80% cheio. É possível modificar esse limite substituindo a configuração mostrada no exemplo abaixo em cada nó Qpid.

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

Neste exemplo, o agente rejeita novas mensagens quando o sistema de arquivos subjacente está 60% cheio.

Como mudar uma configuração do Qpid

Para mudar uma configuração do Qpid:

  1. Crie ou edite o seguinte arquivo:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. Adicione, remova ou modifique as configurações conforme necessário. Por exemplo, para alterar a memória máxima de heap do Qpid Broker para 6 GB, adicione a seguinte modificação de configuração no arquivo:
    bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
  3. Salve as alterações e garanta que o arquivo seja de propriedade do usuário apigee e possa ser lido por ele:
    chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
  4. Reinicie o processo qpidd:
    apigee-service apigee-qpidd restart