Monitorando o Uso e a Disponibilidade da Memória para Execução de Função Concorrente
Descubra como monitorar o uso e a disponibilidade da memória para a execução de funções simultâneas pelo OCI Functions.
O OCI Functions tem um limite para a quantidade total de memória disponível para execução simultânea de todas as funções em uma região. O limite é chamado de total-concurrency-mb e especifica a quantidade máxima de memória que pode ser alocada para a execução de funções simultâneas.
O limite de memória total de simultaneidade-mb tem um valor padrão, conforme mostrado em Limites de Funções. O valor padrão pode já ter sido aumentado em sua tenancy, talvez em resposta a solicitações de Suporte que foram registradas em ocasiões anteriores quando a capacidade de memória foi excedida.
Você pode usar a Console para ver o valor atual do limite de memória total-concurrency-mb em uma região (consulte Exibindo o Limite de Memória Atual para Execução de Função Concorrente).
Quando o limite de memória total-concurrency-mb é atingido, os erros HTTP-429 são retornados em resposta a chamadas de função. Quando você perceber que o OCI Functions precisa de mais memória para a execução de funções simultâneas, poderá submeter uma solicitação para aumentar o limite de memória total-concurrency-mb (consulte Solicitando um Aumento do Limite de Serviço).
Em vez de esperar que o limite de memória total-concurrency-mb seja atingido e, em seguida, atender ao requisito, você pode usar o Oracle Cloud Infrastructure Monitoring e a métrica AllocatedTotalConcurrency
para monitorar quanto da memória disponível para execução de função simultânea foi alocada. Observe que o valor da métrica AllocatedTotalConcurrency
é a quantidade de memória alocada. A quantidade de memória que é na verdade usada para execução de função simultânea é sempre menor ou igual ao valor da métrica AllocatedTotalConcurrency
. Para obter mais informações, consulte Exibindo a Quantidade de Memória Recentemente Alocada para Execução de Função Concorrente.
Você também pode usar a métrica AllocatedTotalConcurrency
para criar um alarme para notificá-lo se a alocação de memória de execução de função simultânea ultrapassar um limite definido por você. Para obter mais informações, consulte Criando um alarme de limite de alocação de memória de execução de função simultânea.
Exibindo o Limite de Memória Atual para Execução de Função Concorrente
Para exibir o limite de memória atual para execução de função simultânea:
-
Abra o menu de navegação e selecione Governança e Administração. Em Gerenciamento de Tenancy, selecione Limites, Cotas e Uso.
- Selecione Funções na lista Serviço.
-
Selecione a região na lista Escopo.
-
Selecione o compartimento raiz na lista Compartimento.
O limite total-concurrency-mb mostra o limite de memória atual para execução de função simultânea.
- (Opcional) Para solicitar memória adicional para execução de função simultânea, selecione o menu ao lado do limite total-concurrency-mb, selecione Abrir Solicitação de Suporte e siga as instruções.
Exibindo a Quantidade de Memória Alocada Recentemente para Execução de Função Concorrente
Para exibir a quantidade de memória alocada recentemente para execução de função simultânea:
-
Abra o menu de navegação e selecione Observabilidade e Gerenciamento. Em Monitoramento, selecione Explorador de Métricas.
- Use os campos Hora inicial e Hora final para especificar um período representativo a ser analisado.
- No painel Consulta 1, crie uma consulta da seguinte forma:
- Para Compartimento, selecione o compartimento raiz.
- Para Namespace de métricas, selecione oci_faas.
- Selecione a opção Modo avançado e informe uma das seguintes consultas no Editor de código de consulta:
- Para mostrar a quantidade total de memória alocada para execução de função concorrente para todas as funções na tenancy em intervalos de 1 minuto, durante o período especificado, informe a seguinte consulta:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum()
- Para mostrar a quantidade total de memória alocada para execução de função concorrente para todas as funções em um único aplicativo em intervalos de 1 minuto, durante o período especificado, informe a seguinte consulta:
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max()
em que <application-OCID> é o OCID de um aplicativo. Por exemplo:
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max()
- Para mostrar a quantidade total de memória alocada para execução de função concorrente para todas as funções na tenancy em intervalos de 1 minuto, durante o período especificado, informe a seguinte consulta:
-
Selecione Atualizar Gráfico.
O gráfico é atualizado e mostra a quantidade de memória alocada para execução de função simultânea, durante o período selecionado.
Criando um alarme de limite de alocação de memória de execução de função concorrente
Para criar um alarme que é acionado quando a alocação de memória de execução de função simultânea excede um limite definido por você:
-
Abra o menu de navegação e selecione Observabilidade e Gerenciamento. Em Monitoramento, selecione Definições de Alarme.
- Selecione Criar Alarme.
- Para Nome do alarme, informe um nome significativo para o alarme. Evite digitar informações confidenciais.
- Selecione a opção Alternar para o Modo Avançado.
- Na área Detalhes da métrica, especifique a métrica a ser avaliada para o alarme, da seguinte forma:
- Para Compartimento, selecione o compartimento raiz.
- Para Namespace de métricas, selecione oci_faas.
- Na área Regra do acionador, especifique a condição que deve ser satisfeita para que o alarme seja acionado:
- Minutos de atraso do trigger: Informe o número de minutos em que a condição deve ser mantida para que o alarme seja acionado.
- Severidade do alarme: Selecione a importância a ser dada a uma notificação de que o alarme foi acionado.
-
Editor de código de consulta: Informe uma consulta para definir uma condição que, quando satisfeita, faça com que o alarme seja acionado, da seguinte forma:
- Se você quiser que o alarme seja acionado quando a alocação de memória para execução de função simultânea para todas as funções na tenancy exceder um determinado valor, informe a seguinte consulta:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > <memory-threshold>
em que <memory-threshold> é uma quantidade de memória (em MiB) a ser usada como limite, acima do qual você deseja que o alarme seja acionado.
Por exemplo, talvez você queira que um alarme seja acionado quando a quantidade de memória alocada para execução de função simultânea exceder 70% da memória total disponível para execução de função simultânea. Se a memória total da execução da função concorrente for 60 GB (ou seja, 61.440 MiB), informe a seguinte consulta:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > 43008
- Se você quiser que o alarme seja acionado quando a alocação de memória para execução de função simultânea para todas as funções em um único aplicativo exceder uma determinada quantidade, informe a seguinte consulta:
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max() > <memory-threshold>
em que:
- <application-OCID> é o OCID do aplicativo
- <memory-threshold> é uma quantidade de memória (em MiB) a ser usada como limite, acima do qual você deseja que o alarme seja acionado.
Por exemplo, talvez você queira que um alarme seja acionado quando a quantidade de memória alocada para execução de função simultânea para todas as funções em um único aplicativo exceder 10% da memória total disponível para execução de função simultânea. Se o total de memória disponível para execução de função concorrente for de 60 GB (ou seja, 61.440 MiB), informe a seguinte consulta:
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max() > 6144
- Se você quiser que o alarme seja acionado quando a alocação de memória para execução de função simultânea para todas as funções na tenancy exceder um determinado valor, informe a seguinte consulta:
- Na área Definir notificações de alarme:
- Para Destino, especifique para onde as notificações serão enviadas quando o alarme for acionado:
- Serviço de destino: Selecione Notificações.
- Compartimento: Selecione o compartimento que contém os recursos que emitem as métricas avaliadas pelo alarme. O compartimento selecionado é também o local de armazenamento do alarme.
- Tópico: O tópico a ser usado para notificações. Cada tópico é compatível com um ou mais protocolos de assinatura, como PagerDuty. Se um tópico adequado ainda não existir, selecione Criar um tópico e defina um novo tópico. Para referência, consulte Criando um Alarme Básico.
- Para Agrupamento de mensagens, selecione uma das seguintes opções:
- Agrupar notificações em streams de métrica: Rastreie coletivamente o status da métrica em todos os streams de métrica. Envie uma mensagem quando o status da métrica for alterado em todos os streams de métricas.
- Dividir notificações por stream de métrica: Rastreie individualmente o status da métrica por stream de métrica. Envie uma mensagem quando o status da métrica de cada stream de métrica for alterado. Para obter um exemplo, consulte Cenário: Dividir Mensagens por Stream de Métrica.
- Para Formato de Mensagem, selecione uma das seguintes opções:
- Enviar mensagens formatadas: Layout simplificado e amigável. Para exibir protocolos de assinatura e tipos de mensagem suportados para mensagens formatadas (opções diferentes de Bruto), consulte Formatação amigável.
- Enviar mensagens Pretty JSON (texto bruto com quebras de linha): JSON com novas linhas e recuos.
- Enviar mensagens brutas: Blob de JSON bruto.
- Para suprimir avaliações e notificações por um período especificado, selecione Suprimir notificações. Essa opção é útil para evitar notificações de alarme durante períodos de manutenção do sistema. Especifique um horário de início, um horário de término e uma descrição opcional. Consulte Best Practices for Your Alarms e Suppressing a Single Alarm.
- Para salvar o alarme sem começar a avaliar dados de métrica, desmarque a caixa de seleção Ativar este alarme?.
- Para Destino, especifique para onde as notificações serão enviadas quando o alarme for acionado:
- Selecione Salvar alarme.