monitoraggio del sistema operativo - AWS Guida prescrittiva

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à.

monitoraggio del sistema operativo

Un'istanza database in Amazon RDS per MySQL o MariaDB viene eseguita sul sistema operativo Linux, che utilizza le risorse di sistema sottostanti: CPU, memoria, rete e storage.

MySQL [(none)]> SHOW variables LIKE 'version%'; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | version | 8.0.28 | | version_comment | Source distribution | | version_compile_machine | aarch64 | | version_compile_os | Linux | | version_compile_zlib | 1.2.11 | +-------------------------+---------------------+ 5 rows in set (0.00 sec)

Le prestazioni complessive del database e del sistema operativo sottostante dipendono fortemente dall'utilizzo delle risorse di sistema. Ad esempio, la CPU è il componente chiave per le prestazioni del sistema, poiché esegue le istruzioni del software del database e gestisce altre risorse di sistema. Se la CPU è sovrautilizzata (ovvero, se il carico richiede più potenza della CPU rispetto a quella fornita per l'istanza database), questo problema influirebbe sulle prestazioni e sulla stabilità del database e, di conseguenza, dell'applicazione.

Il motore del database alloca e libera la memoria in modo dinamico. Quando la memoria RAM non è sufficiente per eseguire il lavoro corrente, il sistema scrive pagine di memoria nella memoria di swap, che risiede sul disco. Poiché il disco è molto più lento della memoria, anche se è basato sulla tecnologia SSD NVMe, un'allocazione eccessiva di memoria porta a un peggioramento delle prestazioni. L'elevato utilizzo della memoria causa una maggiore latenza delle risposte del database, poiché la dimensione di un file di pagina aumenta per supportare memoria aggiuntiva. Se l'allocazione di memoria è così elevata da esaurire sia la RAM che gli spazi di memoria di swap, il servizio di database potrebbe non essere disponibile e gli utenti potrebbero riscontrare errori come[ERROR] mysqld: Out of memory (Needed xyz bytes).

I sistemi di gestione dei database MySQL e MariaDB utilizzano il sottosistema di archiviazione, che è costituito da dischi che memorizzanostrutture su discoad esempio tabelle, indici, log binari, redo log, undo log e file buffer di doppia scrittura. Pertanto, il database, a differenza di altri tipi di software, deve eseguire molte attività su disco. Per un funzionamento ottimale del database, è importante monitorare e ottimizzare l'utilizzo degli I/O del disco e l'allocazione dello spazio su disco. Le prestazioni del database possono essere influenzate quando il database raggiunge i limiti massimi di IOPS o di throughput supportati dal disco. Ad esempio, le interruzioni di accesso casuali causate da una scansione dell'indice possono causare un numero elevato di operazioni di I/O al secondo, con conseguenti limitazioni dello storage sottostante. Le scansioni complete della tabella potrebbero non raggiungere il limite IOPS, ma potrebbero causare una velocità effettiva elevata misurata in megabyte al secondo. È fondamentale monitorare e generare avvisi sull'allocazione dello spazio su disco, poiché errori comeOS error code 28: No space left on devicepuò causare l'indisponibilità e il danneggiamento del database.

Amazon RDS fornisce metriche in tempo reale per il sistema operativo su cui viene eseguita l'istanza database. Amazon RDS pubblica automaticamente un set di parametri del sistema operativo suCloudWatch. Queste metriche sono disponibili per la visualizzazione e l'analisi nella console Amazon RDS e nelCloudWatchdashboard e puoi impostare allarmi sulle metriche selezionate inCloudWatch. Esempi includono:

  • CPUUtilization— La percentuale di utilizzo della CPU.

  • BinLogDiskUsage— La quantità di spazio su disco occupata dai log binari.

  • FreeableMemory— La quantità di memoria ad accesso casuale disponibile. Questo rappresenta il valore delMemAvailablecampo di/proc/meminfo.

  • ReadIOPS— Il numero medio di operazioni I/O di lettura su disco al secondo.

  • WriteThroughput— Il numero medio di byte scritti su disco al secondo per l'archiviazione locale.

  • NetworkTransmitThroughput— Il traffico di rete in uscita sul nodo DB, che combina il traffico del database e il traffico Amazon RDS utilizzato per il monitoraggio e la replica.

Per un riferimento completo di tutte le metriche pubblicate da Amazon RDS aCloudWatch, vediAmazonCloudWatchmetriche per Amazon RDSnella documentazione di Amazon RDS.

La tabella seguente mostra esempi diCloudWatchmetriche per Amazon RDS visualizzate sulla console Amazon RDS.

CloudWatchmetriche per Amazon RDS visualizzate sulla console Amazon RDS

Il grafico seguente mostra metriche simili visualizzate nelCloudWatchcruscotto.

CloudWatchmetriche per Amazon RDS visualizzate nelCloudWatchplancia

L'altro set di metriche del sistema operativo viene raccolto daMonitoraggio miglioratoper Amazon RDS. Questo strumento ti offre una visibilità più approfondita sullo stato delle tue istanze database Amazon RDS for MariaDB e Amazon RDS for MySQL, fornendo metriche di sistema e informazioni sui processi del sistema operativo in tempo reale. Quando tuabilitare il monitoraggio avanzatosull'istanza DB e imposta la granularità desiderata, lo strumento raccoglie le metriche del sistema operativo e le informazioni sul processo, che è possibile visualizzare e analizzare sulConsole Amazon RDS, come mostrato nella schermata seguente.

Metriche del sistema operativo raccolte da Enhanced Monitoring

Alcune delle metriche chiave fornite da Enhanced Monitoring sono:

  • cpuUtilization.total— La percentuale totale della CPU in uso.

  • cpuUtilization.user— La percentuale di CPU utilizzata dai programmi utente.

  • memory.active— La quantità di memoria assegnata, in kilobyte.

  • memory.cached— La quantità di memoria utilizzata per la memorizzazione nella cache degli I/O basati sul file system.

  • loadAverageMinute.one— Il numero di processi che hanno richiesto il tempo della CPU durante l'ultimo minuto.

Per un elenco completo delle metriche, consultaMetriche del sistema operativo nel monitoraggio avanzatonella documentazione di Amazon RDS.

Sulla console Amazon RDS, l'elenco dei processi del sistema operativo fornisce i dettagli di ogni processo in esecuzione nella tua istanza database. L'elenco è organizzato in tre sezioni:

  • Processi del sistema operativo‒ Questa sezione rappresenta un riepilogo aggregato di tutti i processi del kernel e del sistema. Questi processi hanno generalmente un impatto minimo sulle prestazioni del database.

  • Processi RDS— Questa sezione rappresenta un riepilogo delAWSprocessi necessari per supportare un'istanza database Amazon RDS. Ad esempio, include l'agente di gestione di Amazon RDS, i processi di monitoraggio e diagnostica e processi simili.

  • Processi secondari RDS— Questa sezione rappresenta un riepilogo dei processi Amazon RDS che supportano l'istanza database, in questo casomysqldprocesso e relativi thread. Lamysqldi thread appaiono annidati sotto il genitoremysqldprocesso.

La seguente illustrazione della schermata mostra l'elenco dei processi del sistema operativo nella console Amazon RDS.

Elenco dei processi del sistema operativo nella console Amazon RDS

Amazon RDS fornisce le metriche di Enhanced Monitoring nel tuoCloudWatchRegistra l'account. I dati di monitoraggio visualizzati sulla console Amazon RDS vengono recuperati daCloudWatchTronchi. Puoi ancherecupera le metriche per un'istanza DB come flusso di logdaCloudWatchTronchi. Queste metriche sono archiviate in formato JSON. È possibile utilizzare l'output JSON di Enhanced Monitoring daCloudWatchAccedi a un sistema di monitoraggio di tua scelta.

Per visualizzare i grafici sulCloudWatchdashboard e crea allarmi che avviano un'azione se una metrica supera la soglia definita, devi creare filtri metrici inCloudWatchdaCloudWatchTronchi. Per istruzioni dettagliate, consulta laArticolo su AWS Re:POSTsu come filtrare Enhanced MonitoringCloudWatchRegistri per generare metriche personalizzate automatizzate per Amazon RDS.

L'esempio seguente illustra la metrica personalizzataCPU.UsernelCustom/RDSnamespace. Questa metrica personalizzata viene creata filtrando ilcpuUtilization.userMetrica di monitoraggio migliorata daCloudWatchTronchi.

metrica personalizzata CPU.user

Quando la metrica è disponibile nelCloudWatcharchivio, puoi visualizzarlo e analizzarlo inCloudWatchdashboard, applica ulteriori operazioni matematiche e di interrogazione e imposta un allarme per monitorare questa metrica specifica e generare avvisi se i valori osservati non sono in linea con le condizioni di allarme definite.