Skip to main content

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.

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.

Nota

When you upgrade to Server version 2022.1, we recommend validating your engine choice settings and resource allocations. The new 'Allow Server to manage workflows running simultaneously' functionality, and the change to enable AMP by default, can result in settings changing in your environment.

If you have an existing Server and want to maintain your current system settings, please read these instructions before upgrading.

1. Controller > General > Enable AMP Engine

  • Before upgrading, note your current settings.

  • After upgrading, restore the selection to your desired value.

2. Worker > General > Allow Server to manage workflows running simultaneously

  • Before upgrading, note the number set for ‘workflows allowed to run simultaneously’.

  • After upgrading, deselect Allow Server to manage workflows running simultaneously.

  • Input the number you saved for ‘workflows allowed to run simultaneously’.

3. Engine > General > Engine

  • Before upgrading, note your current settings.

  • After upgrading, restore the selection to your desired value.

4. Engine > General > Run engine at a lower priority

  • Before upgrading, note your current settings.

  • After upgrading, restore the selection to your desired value.

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:

Calculation Formulas

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))

  • For Server machines that act as both a worker and a controller with the embedded MongoDB, the Memory Limit (MB) is automatically calculated based on this formula:

    (((Total Physical RAM/2) - 4096) / Number of Simultaneous Jobs)

  • For standalone workers, more memory is allocated to run workflows based on this formula:

    (Total Physical RAM / (Number of Simultaneous Jobs +2))

  • If the formulas result in less than 2 GB, set the Memory Limit to the minimum of 2 GB to ensure the engine is able to execute.

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.

  • Number of physical cores per node: For optimal performance, we recommend 8 physical cores per node and horizontal scaling to additional nodes. Typically, this means 4 simultaneous running workflows per node.

  • 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:

Desired # Concurrent Workflows

Minimum System Requirements

Memory (GB RAM)

Physical Cores

2

32

4

3

48

6

4

64

8

5

80

10

6

96

12

7

112

14

8

128

16

  1. Antes da versão 2022.1, o AMP estava disponível no Server, mas vinha desabilitado por padrão.

  2. 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.

  3. 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).

  4. Configurações do sistema para instalações existentes do Server:

    1. 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.

    2. 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.

      1. 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.

        Worker configuration in Alteryx System Settings.
    3. 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).

    4. Engine > General > Allow Server to manage engine resources é uma nova configuração cujo padrão é falso.

      Both Engines configuration in Alteryx System Settings.
    5. A fórmula para calcular o valor padrão para o limite de memória em Engine > General > Memory Limit foi alterada.

    6. 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.

    7. 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.

  5. Configurações do sistema para novas instalações do Server:

    1. O padrão da caixa de seleção Controller > General > Enable AMP Engine é verdadeiro, ou seja, o padrão é ter o AMP Engine habilitado.

    2. 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.

      1. 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.

    3. O padrão do menu suspenso Engine > General > Engine é Both Engines, ou seja, o padrão é usar ambos os motores.

    4. 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.

    5. A fórmula para calcular o valor padrão para o limite de memória em Engine > General > Memory Limit foi alterada.

    6. 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.

    7. 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.

  6. Os usuários podem alterar as configurações para o estado anterior, ou seja, desativar o AMP no Server?

    1. 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.

      Controller configuration in Alteryx System Settings.
    2. 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.

      Engine configuration in Alteryx System Settings.
  • 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.

No, they will run in the exact same way as they did before.

  • 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.

If it’s properly resourced, both AMP and original Engine workflows should be predictable (predictable using a new baseline, instead of going off of historic original Engine performance results only). The only time it would become unpredictable is if a worker’s hardware resources are under-allocated (original Engine and AMP competing for resources).

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 AMP Engine

Alteryx Engine e AMP: principais diferenças

Uso de memória pelo AMP

Uso de ferramentas com o AMP

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