Solução do CloudWatch: workload da GPU da NVIDIA no Amazon EC2
Esta solução auxilia na configuração da coleta de métricas prontas para uso com agentes do CloudWatch para workloads da GPU da NVIDIA que estão sendo executadas em instâncias do EC2. Além disso, a solução ajuda na configuração de um painel do CloudWatch configurado previamente. Para obter informações gerais sobre todas as soluções de observabilidade do CloudWatch, consulte Soluções de observabilidade do CloudWatch.
Tópicos
Requisitos
Esta solução é aplicável nas seguintes condições:
-
Computação: Amazon EC2
-
Fornecimento de suporte para até 500 GPUs em todas as instâncias do EC2 em uma Região da AWS específica
-
Versão mais recente do agente do CloudWatch
-
SSM Agent instalado na instância do EC2
-
A instância do EC2 deve ter um driver da NVIDIA instalado. Os drivers da NVIDIA são instalados previamente em algumas imagens de máquina da Amazon (AMIs). Caso contrário, é possível instalar o driver manualmente. Para obter mais informações, consulte Instalação de drivers NVIDIA em instâncias Linux.
nota
O AWS Systems Manager (SSM Agent) está instalado previamente em algumas imagens de máquinas da Amazon (AMIs) fornecidas pela AWS e por entidades externas confiáveis. Se o agente não estiver instalado, você poderá instalá-lo manualmente usando o procedimento adequado para o seu tipo de sistema operacional.
Benefícios
A solução disponibiliza monitoramento da NVIDIA, fornecendo insights valiosos para os seguintes casos de uso:
-
Análise do uso da GPU e da memória para identificar gargalos de performance ou a necessidade de obtenção de recursos adicionais.
-
Monitoramento da temperatura e do consumo de energia para garantir que as GPUs operem dentro dos limites seguros.
-
Avaliação da performance do codificador para workloads de vídeo na GPU.
-
Verificação da conectividade PCIe para garantir que atendam à geração e à largura esperadas.
-
Monitoramento das velocidades do relógio da GPU para identificar problemas de ajuste de escala ou de controle de utilização.
A seguir, apresentamos as principais vantagens da solução:
-
Automatiza a coleta de métricas para a NVIDIA usando a configuração do agente do CloudWatch, o que elimina a necessidade de instrumentação manual.
-
Fornece um painel do CloudWatch consolidado e configurado previamente para as métricas da NVIDIA. O painel gerenciará automaticamente as métricas das novas instâncias do EC2 para a NVIDIA que foram configuradas usando a solução, mesmo que essas métricas não estejam disponíveis no momento de criação do painel.
A imagem apresentada a seguir é um exemplo do painel para esta solução.

Custos
Esta solução cria e usa recursos em sua conta. A cobrança será realizada com base no uso padrão, que inclui o seguinte:
-
Todas as métricas coletadas pelo agente do CloudWatch são cobradas como métricas personalizadas. O número de métricas usadas por esta solução depende do número de hosts do EC2.
-
Cada host do EC2 configurado para a solução publica um total de 17 métricas por GPU.
-
-
Um painel personalizado.
-
As operações da API solicitadas pelo agente do CloudWatch para publicar as métricas. Com a configuração padrão para esta solução, o agente do CloudWatch chama a operação PutMetricData uma vez por minuto para cada host do EC2. Isso significa que a API PutMetricData será chamada
30*24*60=43,200
em um mês com 30 dias para cada host do EC2.
Para obter mais informações sobre os preços do CloudWatch, consulte Preço do Amazon CloudWatch
A calculadora de preços pode ajudar a estimar os custos mensais aproximados para o uso desta solução.
Como usar a calculadora de preços para estimar os custos mensais da solução
-
Em Escolher uma região, selecione a região em que você gostaria de implantar a solução.
-
Na seção Métricas, em Número de métricas, insira
17 * average number of GPUs per EC2 host * number of EC2 instances configured for this solution
. -
Na seção APIs, em Número de solicitações de API, insira
43200 * number of EC2 instances configured for this solution
. -
Por padrão, o agente do CloudWatch executa uma operação PutMetricData a cada minuto para cada host do EC2.
-
Na seção Painéis e alarmes, em Número de painéis, insira
1
. -
É possível visualizar os custos mensais estimados na parte inferior da calculadora de preços.
Configuração do agente do CloudWatch para esta solução
O agente do CloudWatch é um software que opera de maneira contínua e autônoma em seus servidores e em ambientes com contêineres. Ele coleta métricas, logs e rastreamentos da infraestrutura e das aplicações e os envia para o CloudWatch e para o X-Ray.
Para obter mais informações sobre o agente do CloudWatch, consulte Coletar métricas, logs e rastreamentos com o agente do CloudWatch.
Nesta solução, a configuração do agente coleta um conjunto de métricas para ajudar você a começar a monitorar e realizar a observabilidade da GPU da NVIDIA. O agente do CloudWatch pode ser configurado para coletar mais métricas da GPU da NVIDIA do que as que são exibidas por padrão no painel. Para obter uma lista de todas as métricas da GPU da NVIDIA que você pode coletar, consulte Colete métricas de GPU NVIDIA.
Configuração do agente para esta solução
As métricas coletadas pelo agente são definidas na configuração do agente. A solução fornece configurações do agente para a coleta das métricas recomendadas com dimensões adequadas para o painel da solução.
Use a configuração do agente do CloudWatch apresentada a seguir em instâncias do EC2 equipadas com GPUs da NVIDIA. A configuração será armazenada como um parâmetro no Parameter Store do SSM, conforme detalhado posteriormente em Etapa 2: armazenar o arquivo de configuração recomendado do agente do CloudWatch no Systems Manager Parameter Store.
{ "metrics": { "namespace": "CWAgent", "append_dimensions": { "InstanceId": "${aws:InstanceId}" }, "metrics_collected": { "nvidia_gpu": { "measurement": [ "utilization_gpu", "temperature_gpu", "power_draw", "utilization_memory", "fan_speed", "memory_total", "memory_used", "memory_free", "pcie_link_gen_current", "pcie_link_width_current", "encoder_stats_session_count", "encoder_stats_average_fps", "encoder_stats_average_latency", "clocks_current_graphics", "clocks_current_sm", "clocks_current_memory", "clocks_current_video" ], "metrics_collection_interval": 60 } } }, "force_flush_interval": 60 }
Implantação do agente para a sua solução
Existem várias abordagens para instalar o agente do CloudWatch, dependendo do caso de uso. Recomendamos o uso do Systems Manager para esta solução. Ele fornece uma experiência no console e simplifica o gerenciamento de uma frota de servidores gerenciados em uma única conta da AWS. As instruções apresentadas nesta seção usam o Systems Manager e são destinadas para situações em que o agente do CloudWatch não está em execução com as configurações existentes. É possível verificar se o agente do CloudWatch está em execução ao seguir as etapas apresentadas em Verificar se o atendente do CloudWatch está em execução.
Se você já estiver executando o agente do CloudWatch nos hosts do EC2 nos quais a workload está implantada e gerenciando as configurações do agente, pode pular as instruções apresentadas nesta seção e usar o mecanismo de implantação existente para atualizar a configuração. Certifique-se de combinar a configuração do agente da GPU da NVIDIA com a configuração do agente existente e, em seguida, implante a configuração combinada. Se você estiver usando o Systems Manager para armazenar e gerenciar a configuração do agente do CloudWatch, poderá combinar a configuração com o valor do parâmetro existente. Para obter mais informações, consulte Managing CloudWatch agent configuration files.
nota
Ao usar o Systems Manager para implantar as configurações do agente do CloudWatch apresentadas a seguir, qualquer configuração existente do agente do CloudWatch nas suas instâncias do EC2 será substituída ou sobrescrita. É possível modificar essa configuração para atender às necessidades do ambiente ou do caso de uso específico. As métricas definidas na configuração representam o requisito mínimo necessário para o painel fornecido pela solução.
O processo de implantação inclui as seguintes etapas:
-
Etapa 1: garantir que as instâncias do EC2 de destino têm as permissões do IAM necessárias.
-
Etapa 2: armazenar o arquivo de configuração recomendado do agente no Systems Manager Parameter Store.
-
Etapa 3: instalar o agente do CloudWatch em uma ou mais instâncias do EC2 usando uma pilha do AWS CloudFormation.
-
Etapa 4: verificar se a configuração do agente foi realizada corretamente.
Etapa 1: garantir que as instâncias do EC2 de destino têm as permissões do IAM necessárias
Você deve conceder permissão para o Systems Manager instalar e configurar o agente do CloudWatch. Além disso, é necessário conceder permissão para que o agente do CloudWatch publique a telemetria da instância do EC2 para o CloudWatch. Certifique-se de que o perfil do IAM anexado à instância tenha as políticas do IAM CloudWatchAgentServerPolicy e AmazonSSMManagedInstanceCore associadas.
-
Para criar uma função, consulte Criar funções do IAM a serem usadas com o atendente do CloudWatch em instâncias do Amazon EC2.
-
Após criar o perfil, associe-o às suas instâncias do EC2. Para anexar um perfil a uma instância do EC2, siga as etapas apresentadas em Attach an IAM role to an instance.
Etapa 2: armazenar o arquivo de configuração recomendado do agente do CloudWatch no Systems Manager Parameter Store
O Parameter Store simplifica a instalação do agente do CloudWatch em uma instância do EC2 ao armazenar e gerenciar os parâmetros de configuração de forma segura, eliminando a necessidade de valores com codificação rígida. Isso garante um processo de implantação mais seguro e flexível ao possibilitar o gerenciamento centralizado e as atualizações simplificadas para as configurações em diversas instâncias.
Use as etapas apresentadas a seguir para armazenar o arquivo de configuração recomendado do agente do CloudWatch como um parâmetro no Parameter Store.
Como criar o arquivo de configuração do agente do CloudWatch como um parâmetro
Abra o console AWS Systems Manager em https://console.aws.amazon.com/systems-manager/
. -
Verifique se a região selecionada no console corresponde à região em que a workload da GPU da NVIDIA está em execução.
-
No painel de navegação, escolha Gerenciamento de aplicações e, em seguida, Parameter Store.
-
Siga as etapas apresentadas a seguir para criar um novo parâmetro para a configuração.
-
Escolha Criar Parâmetro.
-
Na caixa Nome, insira um nome que será usado para referenciar o arquivo de configuração do agente do CloudWatch nas etapas posteriores. Por exemplo, .
AmazonCloudWatch-NVIDIA-GPU-Configuration
-
(Opcional) Na caixa Descrição, digite uma descrição para o parâmetro.
-
Em Camadas de parâmetros, escolha Padrão.
-
Para Tipo, escolha String.
-
Em Tipo de dados, selecione texto.
-
Na caixa Valor, cole o bloco em JSON correspondente que foi listado em Configuração do agente para esta solução.
-
Escolha Criar Parâmetro.
-
Etapa 3: instalar o agente do CloudWatch e aplicar a configuração usando um modelo do AWS CloudFormation
É possível usar o AWS CloudFormation para instalar o agente e configurá-lo para usar a configuração do agente do CloudWatch criada nas etapas anteriores.
Como instalar e configurar o agente do CloudWatch para esta solução
-
Abra o assistente para criar pilha de forma rápida do AWS CloudFormation usando este link: https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/CloudWatchAgent/CFN/v1.0.0/cw-agent-installation-template-1.0.0.json
. -
Verifique se a região selecionada no console corresponde à região em que a workload da GPU da NVIDIA está em execução.
-
Em Nome da pilha, insira um nome para identificar esta pilha, como
CWAgentInstallationStack
. -
Na seção Parâmetros, especifique o seguinte:
-
Para CloudWatchAgentConfigSSM, insira o nome do parâmetro do Systems Manager para a configuração do agente que você criou anteriormente, como
AmazonCloudWatch-NVIDIA-GPU-Configuration
. -
Para selecionar as instâncias de destino, você tem duas opções.
-
Para InstanceIds, especifique uma lista delimitada por vírgulas de IDs de instâncias nas quais você deseja instalar o agente do CloudWatch com esta configuração. É possível listar uma única instância ou várias instâncias.
-
Se você estiver realizando implantações em grande escala, é possível especificar a TagKey e o TagValue correspondente para direcionar todas as instâncias do EC2 associadas a essa etiqueta e a esse valor. Se você especificar uma TagKey, é necessário especificar um TagValue correspondente. (Para um grupo do Auto Scaling, especifique
aws:autoscaling:groupName
para a TagKey e defina o nome do grupo do Auto Scaling para a TagValue para realizar a implantação em todas as instâncias do grupo do Auto Scaling.)
-
-
-
Analise as configurações e, em seguida, escolha Criar pilha.
Se você desejar editar o arquivo de modelo previamente para personalizá-lo, selecione a opção Fazer upload de um arquivo de modelo no Assistente de criação de pilha para fazer o upload do modelo editado. Para obter mais informações, consulte Criar uma pilha no console do AWS CloudFormation.
nota
Após a conclusão desta etapa, este parâmetro do Systems Manager será associado aos agentes do CloudWatch em execução nas instâncias de destino. Isto significa que:
-
Se o parâmetro do Systems Manager for excluído, o agente será interrompido.
-
Se o parâmetro do Systems Manager for editado, as alterações de configuração serão aplicadas automaticamente ao agente na frequência programada, que, por padrão, é de 30 dias.
-
Se você desejar aplicar imediatamente as alterações a este parâmetro do Systems Manager, você deverá executar esta etapa novamente. Para obter mais informações sobre as associações, consulte Working with associations in Systems Manager.
Etapa 4: verificar se a configuração do agente foi realizada corretamente
É possível verificar se o agente do CloudWatch está instalado ao seguir as etapas apresentadas em Verificar se o atendente do CloudWatch está em execução. Se o agente do CloudWatch não estiver instalado e em execução, certifique-se de que todas as configurações foram realizadas corretamente.
-
Certifique-se de ter anexado um perfil com as permissões adequadas para a instância do EC2, conforme descrito na Etapa 1: garantir que as instâncias do EC2 de destino têm as permissões do IAM necessárias.
-
Certifique-se de ter configurado corretamente o JSON para o parâmetro do Systems Manager. Siga as etapas em Solução de problemas de instalação do atendente do CloudWatch com o AWS CloudFormation.
Se todas as configurações estiverem corretas, as métricas da GPU da NVIDIA serão publicadas no CloudWatch e estarão disponíveis para visualização. É possível verificar no console do CloudWatch para assegurar que as métricas estão sendo publicadas corretamente.
Como verificar se as métricas da GPU da NVIDIA estão sendo publicadas no CloudWatch
Abra o console do CloudWatch, em https://console.aws.amazon.com/cloudwatch/
. -
Escolha Métricas e, depois, Todas as métricas.
-
Certifique-se de ter selecionado a região na qual a solução foi implantada, escolha Namespaces personalizados e, em seguida, selecione CWAgent.
-
Pesquise pelas métricas mencionadas em Configuração do agente para esta solução, como
nvidia_smi_utilization_gpu
. Caso encontre resultados para essas métricas, isso significa que elas estão sendo publicadas no CloudWatch.
Criação do painel da solução com a GPU da NVIDIA
O painel fornecido por esta solução apresenta métricas das GPUs da NVIDIA ao agregar e apresentar as métricas em todas as instâncias. O painel mostra um detalhamento dos principais colaboradores (que corresponde aos dez principais por widget de métrica) para cada métrica. Isso ajuda a identificar rapidamente discrepâncias ou instâncias que contribuem significativamente para as métricas observadas.
Para criar o painel, é possível usar as seguintes opções:
Usar o console do CloudWatch para criar o painel.
Usar o console do AWS CloudFormation para implantar o painel.
Fazer o download do código de infraestrutura como código do AWS CloudFormation e integrá-lo como parte da automação de integração contínua (CI).
Ao usar o console do CloudWatch para criar um painel, é possível visualizá-lo previamente antes de criá-lo e incorrer em custos.
nota
O painel criado com o AWS CloudFormation nesta solução exibe métricas da região em que a solução está implantada. Certifique-se de que a pilha do AWS CloudFormation seja criada na mesma região em que as métricas da GPU da NVIDIA são publicadas.
Se você especificou um namespace personalizado diferente de CWAgent na configuração do agente do CloudWatch, será necessário alterar o modelo do AWS CloudFormation para o painel, substituindo CWAgent pelo namespace personalizado que você está usando.
Como criar o painel usando o console do CloudWatch
-
Abra o console do CloudWatch e acesse Criar painel usando este link: https://console.aws.amazon.com/cloudwatch/home?#dashboards?dashboardTemplate=NvidiaGpuOnEc2&referrer=os-catalog
. -
Verifique se a região selecionada no console corresponde à região em que a workload da GPU da NVIDIA está em execução.
-
Insira o nome do painel e, em seguida, escolha Criar painel.
Para diferenciar este painel de painéis semelhantes em outras regiões com facilidade, recomendamos incluir o nome da região no nome do painel, por exemplo,
NVIDIA-GPU-Dashboard-us-east-1
. -
Visualize previamente o painel e escolha Salvar para criá-lo.
Como criar o painel usando o AWS CloudFormation
-
Abra o assistente para criar pilha de forma rápida do AWS CloudFormation usando este link: https://console.aws.amazon.com/cloudformation/home?#/stacks/quickcreate?templateURL=https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NVIDIA_GPU_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json
. -
Verifique se a região selecionada no console corresponde à região em que a workload da GPU da NVIDIA está em execução.
-
Em Nome da pilha, insira um nome para identificar esta pilha, como
NVIDIA-GPU-DashboardStack
. -
Na seção Parâmetros, especifique o nome do painel no parâmetro DashboardName.
-
Para diferenciar este painel de painéis semelhantes em outras regiões com facilidade, recomendamos incluir o nome da região no nome do painel, por exemplo,
NVIDIA-GPU-Dashboard-us-east-1
. -
Confirme as funcionalidades de acesso relacionadas às transformações na seção Capacidades e transformações. Lembre-se de que o AWS CloudFormation não adiciona recursos do IAM.
-
Analise as configurações e, em seguida, escolha Criar pilha.
-
Quando o status da pilha mostrar CREATE_COMPLETE, selecione a guia Recursos na pilha criada e, em seguida, escolha o link exibido em ID físico para acessar o painel. Como alternativa, é possível acessar o painel diretamente no console do CloudWatch ao selecionar Painéis no painel de navegação do console à esquerda e localizar o nome do painel na seção Painéis personalizados.
Se você desejar editar o arquivo de modelo para personalizá-lo para atender a uma necessidade específica, é possível usar a opção Fazer upload de um arquivo de modelo no Assistente de criação de pilha para fazer o upload do modelo editado. Para obter mais informações, consulte Criar uma pilha no console do AWS CloudFormation. É possível usar este link para fazer download do modelo: https://aws-observability-solutions-prod-us-east-1.s3.us-east-1.amazonaws.com/NVIDIA_GPU_EC2/CloudWatch/CFN/v1.0.0/dashboard-template-1.0.0.json
Como começar a usar o painel da GPU da NVIDIA
A seguir, apresentamos algumas tarefas que você pode realizar para explorar o novo painel da GPU da NVIDIA. Essas tarefas permitem a validação do funcionamento correto do painel e fornecem uma experiência prática ao usá-lo para monitorar as GPUs da NVIDIA. À medida que realiza as tarefas, você se familiarizará com a navegação no painel e com a interpretação das métricas visualizadas.
Análise da utilização da GPU
Na seção Utilização, localize os widgets de Utilização da GPU e Utilização da memória. Eles mostram, respectivamente, a porcentagem de tempo em que a GPU está sendo ativamente usada para cálculos e a porcentagem de uso da memória global para leitura ou gravação. Uma utilização elevada pode indicar possíveis gargalos de performance ou a necessidade de obtenção de recursos adicionais de GPU.
Análise do uso de memória da GPU
Na seção Memória, localize os widgets Memória total, Memória usada e Memória livre. Esses widgets fornecem insights sobre a capacidade total de memória das GPUs, além de indicar a quantidade de memória que, no momento, está sendo consumida ou disponível. A pressão de memória pode acarretar em problemas de performance ou erros por falta de memória, portanto, é fundamental monitorar essas métricas e garantir que a workload tenha memória suficiente disponível.
Monitoramento da temperatura e do consumo de energia
Na seção Temperatura/Potência, localize os widgets de Temperatura da CPU e Consumo de energia. Essas métricas são essenciais para garantir que as GPUs estejam operando dentro dos limites seguros de temperatura e consumo de energia.
Identificação da performance do codificador
Na seção Codificador, localize os widgets de Contagem de sessões do codificador, Média de FPS e Latência média. Essas métricas são relevantes se você estiver executando workloads de codificação de vídeo em suas GPUs. O monitoramento dessas métricas é fundamental para garantir a operação ideal dos codificadores e identificar possíveis gargalos ou problemas de performance.
Verificação do status do link do PCIe
Na seção PCIe, localize os widgets de Geração do link do PCIe e de Largura do link do PCIe. Essas métricas fornecem informações sobre o link do PCIe que estabelece conexão entre a GPU e o sistema de host. Certifique-se de que o link esteja operando com a geração e a largura esperadas para evitar possíveis limitações de performance causadas por gargalos do PCIe.
Análise dos relógios da GPU
Na seção Relógio, localize os widgets de Relógio de gráficos, Relógio de SM, Relógio de memória e Relógio de vídeo. Essas métricas apresentam as frequências operacionais atuais dos diversos componentes da GPU. O monitoramento desses relógios pode ajudar a identificar possíveis problemas com o ajuste de escala ou com o controle de utilização do relógio da GPU, que podem impactar a performance.