Risoluzione dei problemi di memoria insufficiente per i database Aurora MySQL - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi di memoria insufficiente per i database Aurora MySQL

Il parametro a livello di istanza aurora_oom_response di Aurora MySQL può consentire all’istanza database di monitorare la memoria di sistema e stimare la memoria utilizzata da varie istruzioni e connessioni. Se il sistema esaurisce la memoria, può eseguire una serie di azioni per tentare di liberarla. L’obiettivo è quello di evitare il riavvio del database a causa di problemi di memoria insufficiente (OOM). Il parametro a livello di istanza acquisisce una stringa di azioni separate da virgola che un’istanza database esegue quando la memoria è insufficiente. Il parametro aurora_oom_response è supportato per Aurora MySQL versione 2 e 3.

Per il parametro aurora_oom_response è possibile utilizzare i seguenti valori e combinazioni di valori. Una stringa vuota indica che non viene intrapresa alcuna azione e di fatto disattiva la funzionalità, esponendo il database a riavvii OOM.

  • decline: rifiuta le nuove query quando l’istanza database ha poca memoria.

  • kill_connect: chiude le connessioni al database che consumano una grande quantità di memoria e termina le transazioni correnti e le istruzioni DDL (Data Definition Language). Questa risposta non è supportata per Aurora MySQL versione 2.

    Per ulteriori informazioni, consulta KILL statement nella documentazione di MySQL.

  • kill_query: termina le query in ordine discendente relativamente al consumo di memoria fino a che la memoria dell’istanza non supera la soglia minima. Le istruzioni DDL non vengono terminate.

    Per ulteriori informazioni, consulta KILL statement nella documentazione di MySQL.

  • print: stampa solo le query che consumano una grande quantità di memoria.

  • tune: ottimizza le cache delle tabelle interne per restituire un po’ di memoria al sistema. Aurora MySQL riduce la memoria utilizzata per le cache come table_open_cache e table_definition_cache in condizioni di memoria insufficiente. Eventualmente, Aurora MySQL riporta l’utilizzo della memoria alla normalità quando il sistema non è più in condizioni di memoria insufficiente.

    Per ulteriori informazioni, consulta table_open_cache e table_definition_cache nella documentazione di MySQL.

  • tune_buffer_pool: riduce la dimensione del pool di buffer per liberare parte della memoria e renderla disponibile al server del database per l’elaborazione delle connessioni. Questa risposta è supportata per Aurora MySQL versione 3.06 e successive.

    È necessario associare tune_buffer_pool con kill_query o kill_connect nel valore del parametro aurora_oom_response. In caso contrario, il ridimensionamento del pool di buffer non avverrà, anche se si include tune_buffer_pool nel valore del parametro.

Nelle versioni di Aurora MySQL precedenti alla 3.06, per le classi di istanze database con memoria inferiore o uguale a 4 GiB, quando l’istanza è sotto pressione di memoria, le azioni predefinite includono print, tune, decline e kill_query. Per le classi di istanze database con memoria superiore a 4 GiB, il valore del parametro è vuoto per impostazione predefinita (disabilitato).

In Aurora MySQL versione 3.06 e successive, per le classi di istanze database con memoria inferiore o uguale a 4 GiB, Aurora MySQL chiude anche le connessioni che consumano più memoria (kill_connect). Per le classi di istanze database con memoria superiore a 4 GiB, il valore del parametro predefinito è print.

In Aurora MySQL versione 3.09 e successive, per le classi di istanze database con memoria superiore a 4 GiB, il valore del parametro predefinito è print,decline,kill_connect.

Se si verificano spesso problemi di memoria insufficiente, è possibile monitorare l’utilizzo della memoria tramite le tabelle di riepilogo della memoria quando performance_schema è abilitato.

Per le metriche di Amazon CloudWatch relative a OOM, consulta Parametri a livello di istanza per Amazon Aurora. Per le variabili di stato globali relative a OOM, consulta Variabili di stato globali di Aurora MySQL.