Monitoraggio dell'uso e della disponibilità della memoria per l'esecuzione delle funzioni concorrenti
Scopri come monitorare l'uso e la disponibilità della memoria per l'esecuzione simultanea delle funzioni da parte di OCI Functions.
OCI Functions ha un limite per la quantità totale di memoria disponibile per l'esecuzione simultanea di tutte le funzioni in un'area geografica. Il limite viene denominato total-concurrency-mb e specifica la quantità massima di memoria che può essere allocata per l'esecuzione della funzione concorrente.
Il limite di memoria total-concurrency-mb ha un valore predefinito, come illustrato nella sezione Limiti funzione. Il valore predefinito potrebbe essere già stato aumentato nella tenancy, forse in risposta alle richieste di supporto registrate in precedenti occasioni in cui la capacità di memoria era stata superata.
È possibile utilizzare la console per visualizzare il valore corrente del limite di memoria total-concurrency-mb in un'area (vedere Visualizzazione del limite di memoria corrente per l'esecuzione delle funzioni concorrenti).
Quando viene raggiunto il limite di memoria total-concurrency-mb, vengono restituiti gli errori HTTP-429 in risposta ai richiami delle funzioni. Quando ti accorgi che OCI Functions richiede più memoria per l'esecuzione simultanea delle funzioni, puoi sottomettere una richiesta per aumentare il limite di memoria total-concurrency-mb (vedere Richiesta di un aumento del limite del servizio).
Anziché attendere il raggiungimento del limite di memoria total-concurrency-mb e quindi soddisfare il requisito, è possibile utilizzare Oracle Cloud Infrastructure Monitoring e la metrica AllocatedTotalConcurrency
per monitorare la quantità di memoria disponibile per l'esecuzione della funzione concorrente allocata. Si noti che il valore della metrica AllocatedTotalConcurrency
corrisponde alla quantità di memoria allocata. La quantità di memoria effettiva utilizzata per l'esecuzione della funzione concorrente è sempre inferiore o uguale al valore della metrica AllocatedTotalConcurrency
. Per ulteriori informazioni, vedere Visualizzazione della quantità di memoria allocata di recente per l'esecuzione di funzioni concorrenti.
È inoltre possibile utilizzare la metrica AllocatedTotalConcurrency
per creare un allarme per notificare se l'allocazione della memoria di esecuzione della funzione concorrente supera una soglia definita. Per ulteriori informazioni, vedere Creazione di un allarme soglia di allocazione della memoria per l'esecuzione di una funzione concorrente.
Visualizzazione del limite di memoria corrente per l'esecuzione delle funzioni concorrenti
Per visualizzare il limite di memoria corrente per l'esecuzione della funzione concorrente:
-
Aprire il menu di navigazione e selezionare Governance & Administration. In Gestione tenancy, selezionare Limiti, quote e uso.
- Selezionare Funzioni dalla lista Servizio.
-
Selezionare l'area dalla lista Ambito.
-
Selezionare il compartimento radice dalla lista Compartimento.
Il limite total-concurrency-mb mostra il limite di memoria corrente per l'esecuzione della funzione concorrente.
- (Facoltativo) Per richiedere memoria aggiuntiva per l'esecuzione delle funzioni concorrenti, selezionare il menu accanto al limite total-concurrency-mb, selezionare Apri richiesta di supporto e seguire le istruzioni.
Visualizzazione della quantità di memoria allocata di recente per l'esecuzione di funzioni concorrenti
Per visualizzare la quantità di memoria allocata di recente per l'esecuzione della funzione concorrente, effettuare le operazioni riportate di seguito.
-
Aprire il menu di navigazione e selezionare Osservabilità e gestione. In Monitoraggio, selezionare Explorer metriche.
- Utilizzare i campi Ora di inizio e Ora di fine per specificare un periodo di tempo rappresentativo da analizzare.
- Nel pannello Query 1 creare una query come indicato di seguito.
- Per Compartimento, selezionare il compartimento radice.
- Per Spazio di nomi metrica, selezionare oci_faas.
- Selezionare l'opzione Modalità avanzata e immettere una delle query riportate di seguito nell'editor di codici query.
- Per mostrare la quantità totale di memoria allocata per l'esecuzione della funzione concorrente per tutte le funzioni della tenancy a intervalli di 1 minuto, durante il periodo di tempo specificato, immettere la query seguente:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum()
- Per visualizzare la quantità totale di memoria allocata per l'esecuzione di tutte le funzioni di una singola applicazione a intervalli di 1 minuto, durante il periodo di tempo specificato, immettere la query seguente:
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max()
dove <application-OCID> è l'OCID di un'applicazione. Ad esempio:
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max()
- Per mostrare la quantità totale di memoria allocata per l'esecuzione della funzione concorrente per tutte le funzioni della tenancy a intervalli di 1 minuto, durante il periodo di tempo specificato, immettere la query seguente:
-
Selezionare Aggiorna grafico.
Il grafico aggiorna e mostra la quantità di memoria allocata per l'esecuzione della funzione concorrente durante il periodo di tempo selezionato.
Creazione di un allarme per la soglia di allocazione della memoria di esecuzione di una funzione concorrente
Per creare un allarme che viene attivato quando l'allocazione della memoria di esecuzione della funzione concorrente supera una soglia definita dall'utente:
-
Aprire il menu di navigazione e selezionare Osservabilità e gestione. In Monitoraggio, selezionare Definizioni allarmi.
- Selezionare Crea allarme.
- In Nome allarme, immettere un nome significativo per l'allarme. Evitare di fornire informazioni riservate.
- Selezionare l'opzione Passa alla modalità avanzata.
- Nell'area Dettagli metrica specificare la metrica da valutare per l'allarme, come indicato di seguito.
- Per Compartimento, selezionare il compartimento radice.
- Per Spazio di nomi metrica, selezionare oci_faas.
- Nell'area Regola trigger, specificare la condizione che deve essere soddisfatta affinché l'allarme venga attivato:
- Minuti ritardo trigger: immettere il numero di minuti durante i quali la condizione deve essere mantenuta affinché l'allarme venga attivato.
- Gravità allarme: selezionare l'importanza da assegnare a una notifica che l'allarme è stato attivato.
-
Editor di codici query: immettere una query per definire una condizione che, una volta soddisfatta, causi l'attivazione dell'allarme, come indicato di seguito.
- Se si desidera che l'allarme venga attivato quando l'allocazione della memoria per l'esecuzione della funzione concorrente per tutte le funzioni della tenancy supera un determinato importo, immettere la query seguente:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > <memory-threshold>
dove <memory-threshold> è una quantità di memoria (in MiB) da utilizzare come soglia, oltre la quale si desidera attivare l'allarme.
Ad esempio, è possibile attivare un allarme quando la quantità di memoria allocata per l'esecuzione della funzione concorrente supera il 70% della memoria totale disponibile per l'esecuzione della funzione concorrente. Se la memoria totale per l'esecuzione della funzione concorrente è di 60 GB (61.440 MiB), immettere la query seguente:
AllocatedTotalConcurrency[1m].groupBy(resourceId).max().grouping().sum() > 43008
- Se si desidera che l'allarme venga attivato quando l'allocazione della memoria per l'esecuzione della funzione concorrente per tutte le funzioni di una singola applicazione supera un determinato importo, immettere la query seguente:
AllocatedTotalConcurrency[1m]{resourceId = "<application-OCID>"}.max() > <memory-threshold>
Dove:
- <application-OCID> è l'OCID dell'applicazione
- <memory-threshold> è una quantità di memoria (in MiB) da utilizzare come soglia, oltre la quale si desidera attivare l'allarme.
Ad esempio, è possibile attivare un allarme quando la quantità di memoria allocata per l'esecuzione della funzione concorrente per tutte le funzioni di una singola applicazione supera il 10% della memoria totale disponibile per l'esecuzione della funzione concorrente. Se la memoria totale disponibile per l'esecuzione della funzione concorrente è di 60 GB (61.440 MiB), immettere la query seguente:
AllocatedTotalConcurrency[1m]{resourceId = "ocid1.fnapp.oc1.phx.aaaaaaaaaf______r3ca"}.max() > 6144
- Se si desidera che l'allarme venga attivato quando l'allocazione della memoria per l'esecuzione della funzione concorrente per tutte le funzioni della tenancy supera un determinato importo, immettere la query seguente:
- Nell'area Definire le notifiche di allarme:
- In Destinazione specificare dove inviare le notifiche quando l'allarme viene attivato:
- Servizio di destinazione: selezionare Notifiche.
- Compartimento: selezionare il compartimento contenente le risorse che emettono le metriche valutate dall'allarme. Il compartimento selezionato è anche la posizione di memorizzazione dell'allarme.
- Argomento: l'argomento da utilizzare per le notifiche. Ogni argomento supporta uno o più protocolli di sottoscrizione, ad esempio PagerDuty. Se un argomento appropriato non esiste già, selezionare Crea un argomento e definire un nuovo argomento. Per informazioni, vedere Creazione di un allarme di base.
- Per Raggruppamento messaggi, selezionare una delle seguenti opzioni:
- Raggruppare le notifiche nei flussi di metriche: tenere traccia collettivamente dello stato delle metriche in tutti i flussi di metriche. Invia un messaggio quando lo stato della metrica in tutti i flussi di metriche cambia.
- Dividi notifiche per flusso di metriche: consente di tenere traccia singolarmente dello stato delle metriche per flusso di metriche. Invia un messaggio quando cambia lo stato della metrica per ogni flusso di metriche. Per un esempio, vedere Scenario: Dividi messaggi per flusso di metriche.
- In Formato messaggio, selezionare una delle seguenti opzioni:
- Invia messaggi formattati: layout semplificato e intuitivo. Per visualizzare i protocolli di sottoscrizione e i tipi di messaggio supportati per i messaggi formattati (opzioni diverse da Raw), vedere Formattazione descrittiva.
- Invia messaggi Pretty JSON (testo raw con interruzioni di riga): JSON con nuove righe e rientri.
- Invia messaggi raw: blob JSON raw.
- Per eliminare le valutazioni e le notifiche per un periodo di tempo specificato, selezionare Sopprimi notifiche. Questa opzione è utile per evitare notifiche di allarme durante i periodi di manutenzione del sistema. Specificare un'ora di inizio, un'ora di fine e una descrizione facoltativa. Vedere Best practice per gli allarmi e Soppressione di un singolo allarme.
- Per salvare l'allarme senza iniziare a valutare i dati delle metriche, deselezionare la casella di controllo Abilita questo allarme?.
- In Destinazione specificare dove inviare le notifiche quando l'allarme viene attivato:
- Selezionare Salva allarme.