Monitorando o Uso e a Disponibilidade da Memória para Simultaneidade Provisionada
Descubra como monitorar o uso e a disponibilidade de memória para simultaneidade provisionada pelo OCI Functions.
O OCI Functions tem um limite para a quantidade total de memória disponível para simultaneidade provisionada para todas as funções em uma região. O limite é chamado provisioned-concurrency-mb e especifica a quantidade máxima de memória que pode ser alocada para simultaneidade provisionada.
O limite de memória provisioned-concurrency-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 provisioned-concurrency-mb em uma região (consulte Exibindo o Limite de Memória Atual para Simultaneidade Provisionada).
Se o OCI Functions precisar de mais memória para simultaneidade provisionada para evitar latência inicial ao chamar funções, você poderá enviar uma solicitação para aumentar o limite de memória provisioned-concurrency-mb (consulte Solicitando um Aumento do Limite de Serviço).
Em vez de aguardar o limite de memória provisioned-concurrency-mb ser atingido e, em seguida, atender ao requisito, você pode usar o Oracle Cloud Infrastructure Monitoring e a métrica AllocatedProvisionedConcurrency
para monitorar a quantidade de memória disponível para simultaneidade provisionada alocada. Observe que o valor da métrica AllocatedProvisionedConcurrency
é a quantidade de memória alocada. A quantidade de memória na verdade usada para simultaneidade provisionada é sempre menor ou igual ao valor da métrica AllocatedProvisionedConcurrency
. 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 AllocatedProvisionedConcurrency
para criar um alarme para notificá-lo se a alocação de memória de simultaneidade provisionada ultrapassar um limite definido por você. Para obter mais informações, consulte Criando um alarme de limite de alocação de memória de simultaneidade provisionado.
Exibindo o Limite de Memória Atual para Simultaneidade Provisionada
Para exibir o limite de memória atual para simultaneidade provisionada:
-
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 provisioned-concurrency-mb mostra o limite de memória atual para simultaneidade provisionada.
- (Opcional) Para solicitar memória adicional para simultaneidade provisionada, selecione o menu ao lado do limite provisioned-concurrency-mb, selecione Abrir Solicitação de Suporte e siga as instruções.
Exibindo a quantidade de memória alocada recentemente para simultaneidade provisionada
Para exibir a quantidade de memória alocada recentemente para simultaneidade provisionada:
-
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 simultaneidade provisionada de todas as funções na tenancy em intervalos de 5 minutos, durante o período especificado, informe a seguinte consulta:
AllocatedProvisionedConcurrency[5m].groupBy(resourceId).max().grouping().sum()
- Para mostrar a quantidade total de memória alocada para simultaneidade provisionada para uma função específica em intervalos de 5 minutos, durante o período especificado, informe a seguinte consulta:
AllocatedProvisionedConcurrency[5m]{resourceId = "<function-OCID>"}.max()
em que <function-OCID> é o OCID de uma função. Por exemplo:
AllocatedProvisionedConcurrency[5m]{resourceId = "ocid1.fnfunc.oc1.phx.aaaa____uxoa"}.max()
- Para mostrar a quantidade total de memória alocada para simultaneidade provisionada de todas as funções na tenancy em intervalos de 5 minutos, 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 simultaneidade provisionada durante o período selecionado.
Criando um alarme de limite de alocação de memória de simultaneidade provisionado
Para criar um alarme acionado quando a alocação de memória de simultaneidade provisionada 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 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 quiser que o alarme seja acionado quando a alocação de memória para simultaneidade provisionada exceder uma determinada quantidade, informe a seguinte consulta:
AllocatedProvisionedConcurrency[5m].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 simultaneidade provisionada exceder 70% da memória total disponível para simultaneidade provisionada. Se a memória total para simultaneidade provisionada for de 40 GB (ou seja, 40.960 MiB), informe a seguinte consulta:
AllocatedProvisionedConcurrency[5m].grouping().sum() > 28672
- Se você quiser que o alarme seja acionado quando a alocação de memória para simultaneidade provisionada para uma função específica exceder uma determinada quantidade, informe a seguinte consulta:
AllocatedProvisionedConcurrency[5m]{resourceId = "<function-OCID>"}.max() > <memory-threshold>
em que:- <function-OCID> é o OCID da função
- <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 simultaneidade provisionada para uma única função exceder 10% da memória total disponível para simultaneidade provisionada. Se o total de memória disponível para simultaneidade provisionada for de 40 GB (ou seja, 40.960 MiB), informe a seguinte consulta:
AllocatedProvisionedConcurrency[5m]{resourceId = "ocid1.fnfunc.oc1.phx.aaaa____uxoa"}.max() > 4096
- Se quiser que o alarme seja acionado quando a alocação de memória para simultaneidade provisionada exceder uma determinada quantidade, informe a seguinte consulta:
- Selecione a opção Alternar para Modo Básico.
- 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.