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

Quando fizer o upgrade do Server para a versão 2022.1, recomendamos validar as configurações de escolha do motor e de alocação dos recursos. A nova funcionalidade para permitir que o Server gerencie fluxos de trabalho executados simultaneamente e a alteração para habilitar o AMP por padrão podem resultar em alterações nas configurações do seu ambiente.

Caso você já tenha um Server e deseje manter suas seleções atuais de configurações do sistema, leia estas instruções antes de fazer o upgrade.

1. Controlador > Geral > Habilitar AMP Engine

  • Antes de fazer o upgrade, anote suas configurações atuais.

  • Após fazer o upgrade, restaure a seleção para o valor desejado.

2. Trabalhador > Geral > Permitir que o servidor gerencie fluxos de trabalho executados simultaneamente

  • Antes de fazer o upgrade, anote o número definido na opção "Fluxos de trabalho que podem ser executados simultaneamente".

  • Após fazer o upgrade, desmarque Permitir que o servidor gerencie fluxos de trabalho executados simultaneamente.

  • Introduza o número anotado para "Fluxos de trabalho que podem ser executados simultaneamente".

3. Motor > Geral > Motor

  • Antes de fazer o upgrade, anote suas configurações atuais.

  • Após fazer o upgrade, restaure a seleção para o valor desejado.

4. Motor > Geral > Executar o motor em uma prioridade mais baixa

  • Antes de fazer o upgrade, anote suas configurações atuais.

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

Fórmulas de cálculo

Trabalhos simultâneos

número de trabalhos simultâneos = floor(número de processadores físicos/2)

Limite de memória

limite de memória = IF(MongoDB habilitado no nó, (((RAM física total/2) - 4096) / Número de trabalhos simultâneos), (RAM física total / (Número de trabalhos simultâneos +2)) )

  • Para máquinas do Server que atuam como um trabalhador e um controlador com o MongoDB integrado, o limite de memória (MB) é calculado automaticamente com base nesta fórmula:

    (((RAM física total/2) - 4096) / Número de trabalhos simultâneos)

  • Para trabalhadores independentes, mais memória é alocada para executar fluxos de trabalho com base nesta fórmula:

    (RAM física total / (Número de trabalhos simultâneos +2))

  • Se as fórmulas resultarem em menos de 2 GB, defina o limite de memória para o mínimo de 2 GB para garantir que o motor seja capaz de executar.

Threads de processamento

Número padrão de threads de processamento = [LogicalCores]

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 núcleo físico é a recomendação para um desempenho ideal com o AMP.

  • CPU por fluxo de trabalho em execução: um fluxo de trabalho em execução simultânea por dois núcleos físicos.

  • Número de núcleos físicos por nó: para um desempenho ideal, recomendamos oito núcleos físicos por nó e escala horizontal para nós adicionais. Normalmente, isso significa quatro fluxos de trabalho simultâneos em execução por nó.

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

Nossas fórmulas para calcular recursos já levam essas recomendações em consideração. Para obter mais informações, acesse Motor.

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 cargas de trabalho de computação intensiva.

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:

Número desejado de fluxos de trabalho simultâneos

Requisitos mínimos do sistema

Memória (GB RAM)

Núcleos físicos

2

32

4

3

48

6

4

64

8

5

80

10

6

96

12

7

112

14

8

128

16

Hardware recomendado para cargas de trabalho de computação intensiva

As recomendações de hardware do Server para cargas de trabalho computacionalmente intensivas são definidas como as especificações ideais em que o Server pode executar fluxos de trabalho exigentes da forma mais eficiente possível. Isso é essencial para reduzir o congestionamento em sistemas ocupados.

As seguintes especificações de hardware são recomendadas para cargas de trabalho de computação intensiva:

Número desejado de fluxos de trabalho simultâneos

Recomendações para carga de trabalho de computação intensiva

Memória (GB RAM)

Núcleos físicos

Núcleos lógicos*

2

64

8

16

3

96

12

24

4

128

16

32

5

160

20

40

6

192

24

48

7

224

28

56

8

256

32

64

*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 ambiente local e servidores virtuais na nuvem. Hyperthreading Intel, SMT da AMD, taxa 2:1 de vCPU para núcleo físico.

  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. Controlador > Geral > Habilitar 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 Trabalhador > Geral > Permitir que o servidor gerencie fluxos de trabalho executados simultaneamente é 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 fluxos de trabalho com permissão para execução simultânea.

      1. O número de fluxos de trabalho com permissão para executar simultaneamente (Trabalhadores autorizados a trabalhar simultaneamente) será calculado automaticamente na inicialização do serviço com base no total de CPUs e na memória neste nó.

        Worker configuration in Alteryx System Settings.
    3. Motor > Geral > Motor, se você tiver alterado este valor, independentemente do valor para o qual foi alterado, ele permanece após o upgrade. Se você nunca alterou essa configuração e sempre usou a opção padrão do motor original, o novo padrão será definido como Ambos os motores.

    4. Motor > Geral > Permitir que o servidor gerencie os recursos do motor é 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 Motor > Geral > Limite de memória foi alterada.

    6. A fórmula para calcular o valor padrão para o número de threads de processamento em Motor > Geral > Número padrão de threads de processamento foi alterada.

    7. Motor > Geral > Executar o motor em uma prioridade mais baixa: se você tiver alterado este valor, independentemente do valor para o qual foi alterado, este permanece após o upgrade. Se você 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 Controlador > Geral > Habilitar AMP Engine é Verdadeiro, ou seja, o padrão é ter o AMP Engine habilitado.

    2. O padrão de Trabalhador > Geral > Permitir que o servidor gerencie fluxos de trabalho executados simultaneamente é 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 (Trabalhadores autorizados a trabalhar simultaneamente) será calculado automaticamente na inicialização do serviço com base no total de CPUs e na memória neste nó.

    3. O padrão do menu suspenso Motor > Geral > Motor é Ambos os motores, ou seja, o padrão é usar ambos os motores.

    4. O padrão de Motor > Geral > Permitir que o servidor gerencie os recursos do motor é 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 Motor > Geral > Limite de memória foi alterada.

    6. A fórmula para calcular o valor padrão para o número de threads de processamento em Motor > Geral > Número padrão de threads de processamento foi alterada.

    7. O padrão de Motor > Geral > Executar o motor em uma prioridade mais baixa é 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 na seção Configuração geral do controlador em 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 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 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?

Garanta que os requisitos mínimos de hardware sejam cumpridos para manter um ambiente estável do Server.

  • 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. Para obter mais informações, acesse Modo de compatibilidade do motor.

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

  • A Qualidade de Serviço (QoS) continua a funcionar como antes.

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 o total de recursos de hardware, 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