Melhores Práticas para Gerenciamento de Memória
Estrutura em tópico as melhores práticas de gerenciamento de memória para manter um ambiente de tempo de execução funcionando e evitar erros de falta de memória.
Um Dispositivo de Integração configura a parte um conjunto de memórias para executar tarefas de orquestração. Gerenciar este conjunto de memórias é a chave para manter um ambiente de tempo de execução funcionando.
Há uma relação direta entre a quantia de memória usada e ciclos de coleta de lixo. A coleta de lixo é um processo que retorna memória, retido por tarefas concluídas e dados variáveis, de volta para um conjunto de memórias usado por todas as tarefas de orquestração. Este processo de coleta de lixo assegura que o Dispositivo de Integração tenha uma fonte constante de memória livre que novas tarefas de orquestração possam usar.
A coleta de lixo (GC) é um processo continuado que executa no segundo plano sem efeito no desempenho da tarefa de orquestração. Entretanto, quando a memória atinge um limite crítico, um processo mais profundo conhecido como coleta de lixo integral ocorre. O processo de coleta de lixo integral coloca todas as tarefas em um estado de espera e retorna a memória não usada de volta para o conjunto. Como todas as tarefas de orquestração param durante uma coleta de lixo integral, coletas de lixo integrais podem afetar o desempenho da orquestração.
Quando o valor da Atividade de GC no Gráfico de Utilização de Recursos aumentar em intervalos regulares, provavelmente há uma alta demanda em memória que o Dispositivo de Integração está tentando gerenciar iniciando ciclos de coleta de lixo integral mais frequente. Entretanto, alto uso de memória não significa necessariamente um aumento nos ciclos totais de coleta de lixo. Por exemplo, um grande volume de pequenas orquestrações em execução resulta em uma grande porcentagem de memória sendo usada. Mas os ciclos de coleta de lixo, constantemente executando no segundo plano, provavelmente retornam a memória de volta para o conjunto de memórias rápido o suficiente para que o uso de memória geral nunca seja alto o suficiente para acionar uma coleta de lixo integral. Coletas de lixo integrais param todas as orquestrações, portanto coletas de lixo integrais frequentes podem afetar o desempenho da orquestração.
A tabela a seguir fornece uma lista de melhores práticas que ajudarão a gerenciar o uso de memória e manter um ambiente de tempo de execução funcionando.
Princípios de Melhor Prática | Descrição |
---|---|
Reduza os níveis de criação de log. | Criação de log mais detalhada requer mais memória para processar e armazenar os dados e também aumenta a carga de E/S no disco do Dispositivo de Integração, que pode desacelerar o desempenho. Níveis de criação de log detalhados são recomendados apenas para propósitos de depuração e não são recomendados para ambientes de produção, onde altos volumes de dados são processados. O Dispositivo de Integração gera logs do sistema e logs da tarefa de orquestração. O Cast Iron recomenda configurar o nível de Log do Sistema para "Aviso" para todos os componentes que são controlados no log do sistema:
Níveis de criação de log de orquestração são especificados para cada orquestração em um projeto. O Cast Iron recomenda configurar os Níveis de Criação de Log par "Valores de Erro" para todas as orquestrações sob todos os projetos no Dispositivo de Integração. Para obter mais informações sobre como configurar níveis de log de orquestração, consulte Editando Configurações de Orquestração. |
Verifique se a persistência está ativada para todas as orquestrações. | Por padrão, a persistência está ativada para uma orquestração e dado variável é gravado no disco ao invés da memória. Ativar a persistência tem o benefício adicional de recuperação de dados momentânea em que uma falha deve ocorrer durante o tempo de execução. Se desativar a persistência para uma orquestração, os dados são armazenados na memória. Ao desativar a persistência o desempenho pode melhorar, ao passo que o número de tarefas em execução aumenta a probabilidade de execução com falta de memória também aumenta. Por causa do alto risco de execução com falta de memória, continue com cuidado extremo ao escolher desativar a persistência. Nota: Desligar a persistência reduz o número de tarefas de orquestração que o Dispositivo de Integração pode executar simultaneamente. O limite é configurado pela quantia de memória disponível no Dispositivo de Integração.
|
Use as capacidades de planejamento disponíveis Console de Gerenciamento da Web (WMC) e Studio para variar tarefas de orquestração. | Ao planejar tarefas intensivas de memória para iniciar em horários diferentes ou para executar fora das horas de pico, você alivia um pouco da carga de memória, reduz o número de coletas de lixo integrais e aumenta potencialmente o desempenho. Em Studio, é possível usar a atividade Planejar Tarefa ou configurar intervalos de pesquisa para atividades em uma orquestração para variar tarefas de orquestração e maximizar a utilização de recursos. Também é possível criar um planejamento no WMC para controlar quando o Dispositivo de Integração deve executar uma tarefa de orquestração. Meça o tempo de execução médio de uma dada tarefa de orquestração de forma que seja possível otimizar os planejamentos de tarefas. |
Minimize o número de variáveis usadas em uma orquestração. | Quanto mais variáveis você usar em uma orquestração, mais memória é necessária para armazenar os dados. Isto, por sua vez, poderia aumentar o número de ciclos de coleta de lixo e afetar o desempenho. Revise suas orquestrações para ver se é possível reduzir o número de variáveis usadas. |
Reduza o número de tarefas em execução simultaneamente. | No WMC, é possível especificar o número máximo de tarefas em execução simultaneamente para uma orquestração. Conforme o número de orquestrações em execução atualmente aumenta, da mesma forma a porcentagem de uso de memória aumenta. Se você observar que a memória está ficando sobrecarregada, reduza o número de tarefas executando simultaneamente. Os efeitos de reduzir o número de tarefas executando simultaneamente é especialmente impactante para tarefas de orquestrações não persistentes em execução por muito tempo que contêm um grande número de variáveis. Nota: Estes tipos de orquestração não são recomendados pelo Cast
Iron.
|
Não exceda 75% de carga de memória. | No Gráfico de Utilização de Recursos de WMC, é possível controlar a porcentagem de memória usada. Quando a porcentagem de memória usada está em aproximadamente 75% ou menos, o Dispositivo de Integração tem a capacidade de processar mais orquestrações. Quando a porcentagem de memória usada excede aproximadamente 75%, você provavelmente observa problemas de desempenho conforme o número de coletas de lixo integrais aumenta. |
Limite os ciclos de coleta de lixo integral. | No Gráfico de utilização de Recursos de WMC, é possível usar o valor de Atividade de GC para controlar uma porcentagem de coletas de lixo integrais. Quando esta porcentagem excede 50%, você pode observar uma redução no rendimento de suas tarefas de orquestração. Implemente as melhores práticas para gerenciamento de memória para reduzir o uso de memória e, portanto, reduzir a probabilidade de ocorrerem ciclos de coleta de lixo. |
Inclua Dispositivos de Integração adicionais em seu ambiente. | Depois de implementar os princípios de melhores práticas, se o uso de memória continuar a ser alto, pode ser a hora de incluir outro Dispositivo de Integração em seu ambiente. |