Práticas recomendadas do AMP Engine
O objetivo deste documento é responder a perguntas sobre o novo AMP Engine. O documento é direcionado tanto a antigos administradores quanto a novos usuários.
Para mais informações sobre o AMP Engine, acesse as páginas de ajuda Alteryx AMP Engine e Motor.
Tópicos gerais
O AMP oferece melhor desempenho e é mais eficiente do que o motor original.
Para mais informações, confira os links para documentação na parte inferior deste documento.
No Designer, o AMP está habilitado por padrão em novos fluxos de trabalho. No caso de novas instalações do Server ou de novos trabalhadores em Servers antigos, o padrão será permitir a execução de ambos os motores, original e AMP. As configurações do fluxo de trabalho determinam o motor a ser usado.
1. Controller > General > Enable AMP Engine
1. Before upgrading, note your current settings.
2. After upgrading, restore the selection to your desired value.
2. Worker > General > Allow Server to manage workflows running simultaneously
1. Before upgrading, note the number set for ‘workflows allowed to run simultaneously’.
2. After upgrading, deselect ‘Allow Server to manage workflows running simultaneously’.
3. Input the number you saved for ‘workflows allowed to run simultaneously’.
3. Engine > General > Engine
1. Before upgrading, note your current settings.
2. After upgrading, restore the selection to your desired value.
4. Engine > General > Run engine at a lower priority
1. Before upgrading, note your current settings.
2. After upgrading, restore the selection to your desired value.
We recommend you use the new options Allow Server to manage workflows running simultaneously and Allow Server to manage engine resources. We've added logic to keep each engine instance working within the memory and logical CPU constraints defined in the System Settings. Admins must take care not to over-allocate if they set these values manually instead of allowing Server to manage them.
Calculations
When you enable the options to Allow Server to manage workflows running simultaneously and Allow Server to manage engine resources, Server calculates the number of simultaneous jobs, as well as the CPU threads (cores) and amount of memory to allocate per job at service startup. These calculations are based on total available logical CPU cores and total system memory resources on the host machine. They are also designed to optimize AMP performance for the available hardware based on our benchmarking results. The formulas for those calculations are as follows:
Simultaneous Jobs
number of simultaneous jobs = min(floor(logical processors / 8), (floor(total memory / 8000) - 2))
Memory Limit
memory limit = floor(total memory / (number of simultaneous jobs +2))
Processing Threads
threads = floor(total logical processors / number of simultaneous jobs)
Recommendations for Manual Value Setting
We recommend you follow these guidelines for optimal performance when setting these values manually:
- Memory per running workflow: 8GB per workflow is the minimum recommendation for optimal performance with AMP.
- CPU per running workflow: 1 simultaneous running workflow per 6-8 logical CPU cores.
- Maximum number of AMP engines run in parallel: This is entirely hardware dependent. In theory, you could run 16 AMP or mixed AMP and original Engine jobs at once if you had a worker with 128 logical cores and 160GB of RAM. Although, at this point disk I/O and network bandwidth are more likely to end up being the bottleneck. Both the original Engine and AMP will be performance limited by disk I/O and network bandwidth depending on the size of the data and where it is coming from and being output to.
- Max number of AMP engines run while also running E1: Server doesn’t differentiate between an AMP engine and an original Engine job. Server just sends the workflow to Engine and Engine determines if it needs to run via AMP or original Engine. As such Server assumes all jobs are AMP if AMP engine is enabled.
We recommend that you reserve 1 job's worth of memory for the operating system and an additional job's worth of memory to avoid a negative impact if you manually run a workflow from Designer running on the Server. Our formulas to calculate resources already take these recommendations into consideration.
Dividimos nossas recomendações em duas categorias: Requisitos mínimos de hardware e Recomendações de hardware para melhor desempenho.
Requisitos mínimos de hardware
Os requisitos mínimos de hardware do Server representam o hardware mínimo necessário para executar uma instalação estável do Alteryx Server. Se você não atender aos requisitos mínimos, pode ter problemas de desempenho ou quedas de serviço nos nós em que o motor é executado.
Os requisitos mínimos de hardware a seguir são recomendados de acordo com o número permitido de fluxos de trabalho simultâneos:
Recomendações de hardware para melhor desempenho
As recomendações de hardware para alcançar o melhor desempenho do Server representam os requisitos de um hardware ideal para concluir a execução de fluxos de trabalho com máxima eficiência. Isso ajuda a eliminar congestionamento em sistemas ocupados.
As recomendações de hardware a seguir são para alcançar o melhor desempenho:
- Antes da versão 2022.1, o AMP estava disponível no Server, mas estava desativado por padrão.
- A partir da versão 2022.1, o padrão para o controlador e o trabalhador em novas instalações do Server será definido para permitir a execução de ambos os motores, original e AMP. No caso de Servers antigos, as configurações existentes para controlador e trabalhador não serão alteradas, mas a execução de ambos os motores estarão habilitadas para os novos trabalhadores por padrão.
- As configurações para habilitar o AMP Engine nos nós de trabalho e nos nós do controlador podem ser encontradas nas configurações de sistema do Alteryx. Agora cada motor inclui configurações adicionais para gerenciar alocações de hardware. Há também uma configuração recomendada para Permitir que o Server gerencie recursos de motor.
- Configurações do sistema para instalações existentes do Server:
- A caixa de seleção Controlador> Geral> Habilitar AMP Engine estará disponível independentemente da opção que o usuário escolheu antes do upgrade.
- Trabalhador> Geral> Permitir que o Server gerencie fluxos de trabalho executados simultaneamente é uma nova configuração, e o padrão é definido como Verdadeiro para todos os novos trabalhadores.
- O número de Fluxos de trabalho com permissão para executar simultaneamente será calculado automaticamente na inicialização do serviço com base na CPU e na memória disponível no ambiente do Server.
- O número de Fluxos de trabalho com permissão para executar simultaneamente será calculado automaticamente na inicialização do serviço com base na CPU e na memória disponível no ambiente do Server.
- Motor> Geral> Motor: se o cliente alterou esse valor, independentemente do valor para o qual foi alterado, este permanecerá após o upgrade. Se o cliente nunca alterou essa configuração e sempre usou a opção padrão "Motor original", o novo padrão será definido como "Ambos os motores".
- Motor> Geral> Permitir que o Server gerencie recursos de motor é uma nova configuração cujo padrão é definido como Falso.
- A fórmula Motor> Geral> Limite de memória para calcular o valor padrão foi alterada.
- A fórmula Motor> Geral> Número padrão de threads de processamento para calcular o valor padrão foi alterada.
- Motor> Geral> Executar o motor em uma prioridade mais baixa: se o cliente alterou esse valor, independentemente do valor para o qual foi alterado, este permanecerá após o upgrade. Se o cliente sempre usou o valor padrão "Falso", o novo padrão será definido como Verdadeiro após o upgrade.
- Configurações do sistema para novas instalações do Server:
- O padrão da caixa de seleção Controlador> Geral> Habilitar AMP Engine é Verdadeiro.
- O padrão para Trabalhador> Geral> Permitir que o Server gerencie fluxos de trabalho executados simultaneamente é Verdadeiro para todos os trabalhadores.
- O número de Fluxos de trabalho com permissão para executar simultaneamente será calculado automaticamente na inicialização do serviço com base na CPU e na memória disponível no ambiente do Server.
- O padrão do menu suspenso Motor> Geral> Motor é Ambos os motores.
- O padrão para Motor> Geral> Permitir que o Server gerencie recursos de motor é Falso.
- A fórmula Motor> Geral> Limite de memória para calcular o valor padrão foi alterada.
- A fórmula Motor> Geral> Número padrão de threads de processamento para calcular o valor padrão foi alterada.
- O padrão para Motor> Geral> Executar o motor em uma prioridade mais baixa é Verdadeiro.
- É possível redefinir as configurações, ou seja, desativar o AMP no Server?
- Se o administrador não quiser usar o AMP, ele precisa desativá-lo manualmente. Na imagem abaixo, veja a configuração do motor na seção de configuração geral do controlador nas configurações do sistema.
- Se o administrador quiser desativar o AMP em alguns nós de trabalho, pode fazer isso na seção Configuração do motor nas configurações do sistema. Veja abaixo a configuração da lista suspensa "Motor". Na imagem, a opção selecionada é Ambos os motores, mas você pode alterá-la e selecionar apenas Motor original. O padrão para novos ambientes do Server é Ambos os motores.
- Se o administrador não quiser usar o AMP, ele precisa desativá-lo manualmente. Na imagem abaixo, veja a configuração do motor na seção de configuração geral do controlador nas configurações do sistema.
- Não há um limite de memória separado. Em Configurações do sistema, o campo Motor> Geral> Limite de memória se aplica ao motor. Isso se aplica ao Designer, ao Server e, basicamente, a qualquer local em que o motor é executado.
- O Designer executa apenas um fluxo de trabalho por vez. Portanto, as limitações são diferentes e mais tolerantes.
O AMP estará habilitado no sistema automaticamente, e todas as configurações relevantes estarão definidas por padrão. Os usuários só precisariam fazer alterações se quisessem desabilitá-lo. Confira as respostas em Quais foram as alterações no Designer e no Server?
Siga as orientações de requisitos mínimos de hardware para alcançar o desempenho e a estabilidade ideais.
A ativação do AMP no Server pode causar falha em algum dos meus fluxos de trabalho atuais?
- Não, eles serão executados exatamente como antes.
Permitir a execução de ambos os motores no Server faz com que meus fluxos de trabalho antigos sejam executados de forma diferente?
- Quando você salva um fluxo de trabalho no Designer, a opção em "Tempo de execução" pode estar configurada para usar o AMP Engine ou não. A opção salva no Designer é atendida nas execuções do Server. O Server nunca substitui a opção de motor salva no fluxo de trabalho. Ou seja, habilitar ambos os motores no Server não faz com que os fluxos de trabalho salvos com o motor original sejam executados com o AMP. Quando um fluxo de trabalho é salvo para usar o AMP, mas o AMP não está habilitado no Server, o fluxo de trabalho NÃO é executado com o motor original e a execução falha.
- Para que um fluxo de trabalho salvo com o motor original seja executado com o AMP, selecione a opção Usar AMP Engine no Designer e salve o fluxo de trabalho novamente.
- Como agora algumas ações são processadas em paralelo, a execução de fluxos de trabalho no AMP pode alterar a ordem das linhas resultantes na saída. Lembre-se disso e verifique se os seus processos são dependentes da ordem de saída. Se esse for o caso, você pode ajustar seus fluxos de trabalho para manter a ordem do motor original.
- Podem ocorrer mudanças no tempo de execução de cada fluxo de trabalho.
- Em geral, as tarefas de fluxo de trabalho com o AMP são executadas significativamente mais rápido com o número correto de núcleos de processamento.
- Em alguns casos, trabalhos podem demorar mais com o AMP do que quando eram executados com o motor original, principalmente se os fluxos de trabalho fizerem uso intenso da CPU e se o número de threads por fluxo de trabalho for baixo.
- Em geral, os fluxos de trabalho do AMP são concluídos mais rápido do que os outros, e podem usar os recursos que estariam disponíveis para fluxos que não são do AMP, fazendo com que estes demorem um pouco mais. Mas isso não altera o funcionamento da Qualidade de Serviço (QoS), e alguns fluxos de trabalho podem ser executados mais rápido. A QoS continua a funcionar como antes.
Quando o AMP estiver habilitado, os clientes conseguirão fazer isso?
- À exceção de poucos casos, o tempo de conclusão é consistentemente menor.
Se a ativação do AMP faz perder a garantia de tempos de execução uniformes, é recomendado que os usuários com esse caso de negócios desabilitem o AMP?
- Com os recursos adequados, tanto os fluxos de trabalho no motor original quanto no AMP são previsíveis (previsível utilizando uma nova linha de base, em vez de se basear apenas nos resultados históricos de desempenho do motor original). Eles seriam imprevisíveis apenas quando os recursos de hardware de um trabalhador estivessem subalocados (motores original e AMP disputando recursos).
Você pode salvar o fluxo de trabalho no Server com o AMP habilitado e, em seguida, salvar uma cópia dele com o AMP desabilitado. Depois você executa cada um desses fluxos algumas vezes e verifica qual deles apresenta o melhor desempenho. Observe também que os fluxos de trabalho do AMP tendem a ser executados mais rápido quando executados em paralelo com outros fluxos do AMP.
Preocupações com a Qualidade de Serviço
Na configuração do motor, o Limite de memória se aplica ao motor, seja ele o original ou o AMP. A diferença está na forma como cada motor lida com esse limite de memória:
- O motor original aloca todo o limite previamente.
- O AMP aloca o que precisa até alcançar o limite.
Os recursos são usados com mais eficiência. O motor original é multithread, mas não em um grau elevado. O AMP executa trabalhos em série com muito mais proficiência. As vantagens estão na produtividade total, que é mais alta com o AMP do que com o motor original.
Agora o Server é capaz de analisar seu hardware e alocar os recursos apropriados por motor. O nível de gerenciamento de recursos não é igual ao encontrado em um SO. Porém, com essa nova funcionalidade, implementamos a capacidade do Server de gerenciar seus recursos.
Alocamos automaticamente o número de trabalhos que podem ser executados ao mesmo tempo de acordo com os recursos de hardware disponíveis, se o administrador configurar essa funcionalidade. Para mais informações sobre a configuração de trabalhadores, acesse a página de ajuda Trabalhador.
Não, os recursos são alocados por trabalho de motor. Cada tarefa tem disponíveis os próprios recursos. Portanto, não deve haver contenção de recursos entre os trabalhos.