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.
Para obter mais informações sobre os requisitos do sistema para o Server, visite a página de ajuda Requisitos do sistema.
Tópicos gerais
Para a maioria dos casos de uso, o AMP Engine fornece melhorias significativas de desempenho e eficiência em relação ao motor original desde que recursos suficientes do sistema estejam disponíveis. Para obter mais informações sobre os requisitos e recomendações de recursos do sistema, consulte as seções Como gerenciar recursos do sistema com o AMP? e Quais são os requisitos do sistema para o AMP Engine?.
O AMP foi projetado para lidar com volumes maiores de dados a uma velocidade mais alta e geralmente executa fluxos de trabalho mais rapidamente, com uso mais completo dos recursos da máquina em comparação com o motor original.
A arquitetura do motor original (Alteryx Engine) permite essencialmente o processamento single-thread, em que os dados são processados sequencialmente registro por registro. Por outro lado, o novo conceito do AMP Engine permite o processamento multithread. O AMP processa registros em pacotes para melhorar os tempos de execução, e as ferramentas podem ser executadas em paralelo. O AMP também usa algoritmos de maior desempenho ao agrupar e classificar registros, o que pode afetar a ordem dos registros na saída.
O artigo AMPlifique seus fluxos de trabalho descreve alguns dos benefícios de desempenho ao usar o AMP Engine:
As ferramentas mais comumente usadas apresentam melhor desempenho no AMP.
Os benefícios do AMP geralmente aumentam à medida que o volume de dados aumenta.
O desempenho varia de acordo com o tamanho dos dados, hardware subjacente, infraestrutura de rede e data center, configuração do Alteryx Server e construção do fluxo de trabalho.
Resultados de referência
Nota
Foram utilizadas as seguintes medidas para comparação:
Produtividade de fluxos de trabalho = (fluxos de trabalho / tempo de execução). O tempo de execução é o tempo total para executar um fluxo de trabalho.
Produtividade do motor = (fluxos de trabalho / tempo de execução do motor). O tempo de execução do motor é o tempo em que o motor executa um fluxo de trabalho.
Fluxos de trabalho = número de fluxos de trabalho.
Quando há apenas um fluxo de trabalho, não há diferença de tempo significativa entre a produtividade do motor e a produtividade de fluxos de trabalho. Se houver dois fluxos de trabalho em uma fila com apenas um trabalhador, o tempo de execução do primeiro fluxo de trabalho impacta o tempo de execução do segundo.
Resultados de referência para uma tarefa típica de preparação de dados
Resultados de referência para uma tarefa preditiva ou de machine learning típica, com uso intensivo de CPU:
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. Antes de fazer o upgrade, anote suas configurações atuais.
2. Após fazer o upgrade, restaure a seleção para o valor desejado.
2. Worker > General > Allow Server to manage workflows running simultaneously
1. Antes de fazer o upgrade, anote o número definido na opção "Workflows allowed to run simultaneously".
2. Após fazer o upgrade, desmarque Allow Server to manage workflows running simultaneously.
3. Introduza o número anotado para "Workflows allowed to run simultaneously".
3. Engine > General > Engine
1. Antes de fazer o upgrade, anote suas configurações atuais.
2. Após fazer o upgrade, restaure a seleção para o valor desejado.
4. Engine > General > Run engine at a lower priority
1. Antes de fazer o upgrade, anote suas configurações atuais.
2. Após fazer o upgrade, restaure a seleção para o valor desejado.
Recomendamos que você use as novas opções Allow Server to manage workflows running simultaneously (permitir que o Server gerencie fluxos de trabalho executados simultaneamente) e Allow Server to manage engine resources (permitir que o Server gerencie recursos do motor). Adicionamos uma lógica para manter cada instância do motor funcionando dentro das restrições de memória e CPU definidas em Configurações do sistema. Caso definam esses valores manualmente em vez de permitir que o Server os gerencie, os administradores devem ter cuidado para não realizar alocações em excesso.
Cálculos
Quando você habilita as opções Allow Server to manage workflows running simultaneously e Allow Server to manage engine resources, o Server calcula o número de trabalhos simultâneos, bem como os threads (núcleos) de CPU e a quantidade de memória a ser alocada por trabalho na inicialização do serviço. Esses cálculos são baseados no total de núcleos lógicos de CPU disponíveis e nos recursos de memória do sistema na máquina host. Eles também são projetados para otimizar o desempenho do AMP para o hardware disponível com base em nossos resultados de referência. As fórmulas para esses cálculos são as seguintes:
Nota
Trabalhos simultâneos
número de trabalhos simultâneos = min(floor(processadores lógicos / 8), (floor(memória total / 8000) - 2))
Limite de memória
limite de memória = floor(memória total / (número de trabalhos simultâneos +2))
Threads de processamento
threads = floor(total de processadores lógicos / número de trabalhos simultâneos)
Recomendações para a definição manual de um valor
Recomendamos que você siga estas diretrizes para um desempenho ideal ao definir esses valores manualmente:
Memória por fluxo de trabalho em execução: 8 GB por fluxo de trabalho é a recomendação mínima para um desempenho ideal com o AMP.
CPU por fluxo de trabalho em execução: 1 fluxo de trabalho em execução simultânea por 6-8 núcleos lógicos da CPU.
Número máximo de execuções do motor AMP em paralelo: isso depende inteiramente do hardware. Em teoria, seria possível executar 16 trabalhos de uma só vez com o AMP ou com um misto do AMP e do motor original se você tivesse um trabalhador com 128 núcleos lógicos e 160 GB de RAM. No entanto, neste ponto, a E/S do disco e a largura de banda da rede são mais propensas a se tornarem gargalos. Tanto o motor original quanto o AMP serão limitados pelo desempenho da E/S do disco e da largura de banda da rede, dependendo do tamanho dos dados, de onde eles vêm e para onde estão sendo enviados.
Número máximo de execuções do motor AMP enquanto E1 também está em execução: o Server não faz distinção entre trabalhos com o AMP Engine e com o motor original. O Server apenas envia o fluxo de trabalho para o motor e o motor determina se ele precisa ser executado via AMP ou motor original. Dessa forma, o Server assume que todos os trabalhos são AMP se o AMP Engine estiver habilitado.
Recomendamos que você reserve memória equivalente a um trabalho para o sistema operacional e mais um trabalho adicional para evitar impactos negativos ao executar manualmente um fluxo de trabalho do Designer em execução no Server. Nossas fórmulas para calcular recursos já levam essas recomendações em consideração.
Para obter os requisitos de sistema mais recentes para o Server, consulte a página de ajuda Requisitos de sistema do Server. 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 não atender aos requisitos mínimos, você pode ter problemas de desempenho ou quedas de serviço inesperadas 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:
Nota
A linha realçada em verde é a configuração mínima recomendada. A linha que mostra informações para um fluxo de trabalho simultâneo é útil para entender o aumento de recursos necessário para adicionar uma tarefa extra à configuração atual.
Recomendações de hardware para melhor desempenho
Estas recomendações para alcançar o melhor desempenho do Server representam os requisitos ideais de hardware para concluir a execução de fluxos de trabalho com máxima eficiência ao usar o AMP Engine. Isso ajuda a eliminar congestionamento em sistemas ocupados e a otimizar o desempenho e a produtividade do AMP Engine.
Recomendamos as seguintes configurações de hardware para um desempenho ideal:
Nota
*Núcleos lógicos podem ser vCPUs ou núcleos lógicos dentro de um núcleo físico. Padronizar a referência aos núcleos lógicos é uma forma consistente de comparação entre servidores físicos no local e servidores virtuais na nuvem.
Antes da versão 2022.1, o AMP estava disponível no Server, mas vinha desabilitado por padrão.
A partir da versão 2022.1, em novas instalações do Server, o padrão para o controlador e o trabalhador está 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 podem ser diferentes, e novos trabalhadores podem ter a execução de ambos os motores habilitada por padrão. Se você deseja evitar isso, consulte nossa observação sobre como preservar as configurações atuais.
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 os recursos do motor (Allow Server to Manage Engine Resources).
Configurações do sistema para instalações existentes do Server:
Controller > General > Enable AMP Engine: se você tiver alterado este valor, independentemente do valor para o qual o tenha alterado, este permanece após o upgrade. Se você nunca alterou essa configuração e sempre deixou o estado padrão como não selecionado, a caixa de seleção agora estará selecionada, o que significa que o AMP estará habilitado por padrão.
O padrão de Worker > General > Allow Server to manage workflows running simultaneously é verdadeiro para todos os trabalhadores, ou seja, o padrão é permitir que o Server gerencie fluxos de trabalho executados simultaneamente. Quando essa configuração estiver definida como verdadeiro, você não poderá definir o número de trabalhadores com permissão para execução simultânea.
O número de fluxos de trabalho com permissão para executar simultaneamente (Workers allowed to run simultaneously) será calculado automaticamente na inicialização do serviço com base na CPU e na memória disponível no ambiente do Server.
Engine > General > Engine: se o cliente tiver alterado este valor, independentemente do valor para o qual foi alterado, este permanece após o upgrade. Se o cliente nunca alterou essa configuração e sempre usou a opção padrão "Original Engine Only" (motor original), o novo padrão será definido como "Both Engines" (ambos os motores).
Engine > General > Allow Server to manage engine resources é uma nova configuração cujo padrão é falso.
A fórmula para calcular o valor padrão para o limite de memória em Engine > General > Memory Limit foi alterada.
A fórmula para calcular o valor padrão para o número de threads de processamento em Engine > General > Default number of processing threads foi alterada.
Engine > General > Run engine at a lower priority: se o cliente tiver alterado este valor, independentemente do valor para o qual foi alterado, este permanece 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 Controller > General > Enable AMP Engine é verdadeiro, ou seja, o padrão é ter o AMP Engine habilitado.
O padrão de Worker > General > Allow Server to manage workflows running simultaneously é verdadeiro para todos os trabalhadores, ou seja, o padrão é permitir que o Server gerencie fluxos de trabalho executados simultaneamente.
O número de fluxos de trabalho com permissão para executar simultaneamente (Workers allowed to run simultaneously) 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 Engine > General > Engine é Both Engines, ou seja, o padrão é usar ambos os motores.
O padrão de Engine > General > Allow Server to manage engine resources é falso, ou seja, o padrão é não permitir que o Server gerencie os recursos do motor.
A fórmula para calcular o valor padrão para o limite de memória em Engine > General > Memory Limit foi alterada.
A fórmula para calcular o valor padrão para o número de threads de processamento em Engine > General > Default number of processing threads foi alterada.
O padrão de Engine > General > Run engine at a lower priority é verdadeiro, ou seja, o padrão é executar o motor em uma prioridade mais baixa.
Os usuários podem alterar as configurações para o estado anterior, 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 em Controller > General Configuration > Engine nas configurações do sistema.
Se o administrador quiser desativar o AMP em alguns nós de trabalho, pode fazer isso na seção Engine Configuration das configurações do sistema. Veja abaixo a configuração da lista suspensa "Engine". Na imagem, a opção selecionada é para usar ambos os motores (Both Engines), mas você pode alterá-la para usar apenas o motor original (Original Engine Only). O padrão para novos ambientes do Server é Both Engines.
Não há um limite de memória separado. Em Configurações do sistema, o campo que configura o valor para o limite de memória Engine > General > Memory Limit 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 sistema tem o AMP habilitado automaticamente e todas as configurações relevantes 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 mesma ordem de registros 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 fizerem uso intensivo de 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 podem ser executados mais rápido. A QoS continua a funcionar como antes.
Quando o AMP está 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 com que a garantia de tempos de execução consistentes seja perdida, é recomendado que os usuários com esse caso de negócios desativem o AMP?
Com os recursos adequados, tanto os fluxos de trabalho no motor original quanto no AMP devem ser previsíveis (previsíveis ao utilizar 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 se 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, execute cada um desses fluxos algumas vezes para ver 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 número definido para o limite de memória em Memory Limit 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 do motor. Cada trabalho tem seus próprios recursos disponíveis, o que significa que não deve haver competição por recursos entre os trabalhos.
Artigos do AMP
Webinar do AMP Engine (32 minutos)
Alteryx Engine e AMP: principais diferenças
Acelere seus processos analíticos com o novo AMP Engine
AMPlifique seus fluxos de trabalho
Entendendo o Alteryx AMP Engine
Detalhes técnicos do AMP Engine | Parte 1 | Por que o AMP?
Detalhes técnicos do AMP Engine | Parte 2 | Principais conceitos do AMP Engine