MariaDB
 sql >> Database >  >> RDS >> MariaDB

Monitoraggio delle prestazioni di MariaDB in un cloud ibrido

Le prestazioni nel nostro database MariaDB sono una delle aree che vogliamo monitorare e osservare da vicino in un ambiente di produzione e le sue condizioni di esecuzione tempestiva. Può essere estremamente impegnativo in termini di tempo, lavoro e denaro se la configurazione architettonica utilizza un cloud ibrido. Non solo, ci sono alcune aree da considerare, in particolare l'intermediario di rete che serve la sua connettività come cloud on-premise o privato che comunica con il cloud pubblico (GCP, AWS, Azure, ecc.) e viceversa .

Questo blog riguarda il monitoraggio delle prestazioni dei database MariaDB su un'infrastruttura Hybrid Cloud. Ti forniremo le nozioni di base e gli indicatori chiave più importanti durante il monitoraggio delle prestazioni del database MariaDB all'interno di una configurazione di cloud ibrido.

Perché hai bisogno del monitoraggio delle prestazioni?

Su un cloud ibrido, può essere complicato monitorare ogni servizio di cui disponi. A differenza del tuo data center o del tuo cloud privato, hai il pieno controllo dell'infrastruttura hardware e software. Con il cloud pubblico, ci sono limitazioni sui servizi offerti e potrebbe comportare un costo aggiuntivo se desideri servizi diversi che forniscano metriche e registri. La sicurezza è anche una preoccupazione per quanto riguarda i dati riservati che vengono raccolti.

Il monitoraggio delle prestazioni aiuta a determinare l'efficienza e la velocità di esecuzione dei database nel cloud, in locale o nel cloud privato o pubblico. In pratica, un insieme di processi e strumenti testati e basati sui risultati che ti forniranno metriche periodiche o in tempo reale.

All'interno di un cloud ibrido, non tutti gli strumenti di monitoraggio del software sono creati per gestire le metriche chiave che devono essere osservate e monitorate. Dovresti avere l'idea e le conoscenze per determinare le metriche e i requisiti richiesti che lo strumento può fornire. Con un cloud ibrido, ci si aspetta che la natura del funzionamento di un cloud ibrido possa essere complessa. I servizi sono altamente distribuiti e mescolati con altri servizi che non sono vincolati a un solo fornitore.

A questo proposito, il tuo software di monitoraggio ha queste specialità e ha anche la capacità di identificare e separare da quale cloud appartiene. Un software o uno strumento di monitoraggio deve essere in grado di affrontare colli di bottiglia, problemi di sicurezza, latenze, fornire scalabilità, notificare problemi in corso e fornire previsioni. La previsione può evitare ulteriori conseguenze che possono portare a un disastro o influire sull'efficienza dei database MariaDB. Questo aiuta l'intero team, inclusi ingegneri dell'infrastruttura, ingegneri di database, amministratori di server e sviluppatori, a garantire che i server di database siano integri e funzionino al livello delle aspettative.

Cose da considerare per il monitoraggio del database

Quando si monitora il cluster o il nodo del database MariaDB (replica o Galera), ci sono due cose principali da tenere in considerazione:il sistema operativo e il database stesso. Dovrai definire quali metriche monitorerai da entrambi i lati e come lo farai. Devi monitorare la metrica sempre nel contesto del tuo sistema e dovresti cercare alterazioni nel modello di comportamento.

Nella maggior parte dei casi, dovrai utilizzare diversi strumenti (poiché è quasi impossibile trovarne uno per coprire tutte le metriche desiderate.) 

Tieni presente che quando una delle tue metriche è interessata, può interessare anche altre, rendendo più complessa la risoluzione del problema. Avere un buon sistema di monitoraggio e avviso è importante per rendere questo compito il più semplice possibile.

Monistra sempre l'attività del tuo server (rete, disco, carico, memoria e CPU)

Il monitoraggio dell'attività del server può anche essere un compito complesso se si dispone di uno stack molto complicato che è intrecciato nell'architettura del database. Tuttavia, per un database MariaDB, è sempre meglio avere i tuoi nodi sempre impostati come server dedicato per ottenere un'introspezione completa per nodo. Sebbene ciò non ti impedisca di utilizzare tutte le risorse di riserva, di seguito sono riportate le aree chiave comuni che devi esaminare.

Rete

Su un'infrastruttura cloud ibrida, è una delle preoccupazioni più importanti da considerare poiché è necessario prendere in considerazione il tipo di progettazione e il modo in cui comunica dal cloud locale o privato al cloud pubblico e viceversa. In entrambi i casi, uno dei cluster o nodi specializza il suo ruolo come primario per la ricezione delle scritture o funge da ripristino di emergenza. A questo proposito, non vuoi che i tuoi nodi di ripristino abbiano latenze, peggio ancora che ottengono grandi ritardi di replica. Ogni volta che subisce ritardi e quando il cluster principale di un determinato cloud (diciamo il tuo locale) si interrompe, il tuo cloud pubblico deve subentrare ma sarà in grado di fornire i dati più aggiornati. Ogni volta che ciò può accadere, potrebbe essere necessario aggiungere un meccanismo di pre-failover che si occuperà dei backup incrementali o PITR nel caso in cui alcune transazioni o scritture non siano state ancora applicate nel cluster di ripristino (o in questo caso, nel cluster di cloud pubblico).

Se stai usando Galera, poiché MariaDB ha aggiornato Galera alla versione 4, la replica in streaming viene aggiunta come una delle funzionalità chiave e delle modifiche rispetto alla versione precedente. Poiché la replica in streaming risolve gli inconvenienti delle versioni precedenti, ma consente di gestire più di 2 GB di set di scritture da Galera Cluster 4. Ciò consente la frammentazione delle transazioni di grandi dimensioni ed è altamente consigliato abilitarla solo a livello di sessione. Ciò significa che il monitoraggio dell'attività di rete è molto importante e cruciale per la normale attività del cluster MariaDB. Questo ti aiuterà a identificare quale nodo ha avuto il traffico di rete più o più alto in base al periodo di tempo.

Un buon esempio di monitoraggio della rete di rendering è l'utilizzo di ClusterControl. Identifica ciascuno dei nodi e fornisce una panoramica della sua attività di rete per nodo, indipendentemente dal cloud in cui si trova il nodo. Vedi screenshot qui sotto:

CPU, memoria e attività di caricamento

Consentitemi di descrivere brevemente queste tre aree da considerare durante il monitoraggio. In questa sezione, è sempre meglio avere una migliore osservabilità delle seguenti aree contemporaneamente. È facile e veloce da capire e aiuta a escludere un collo di bottiglia delle prestazioni o identificare i bug che causano lo stallo dei nodi o influiscono sugli altri nodi o addirittura hanno la possibilità che un cluster si interrompa.

In che modo la CPU, la memoria e l'attività di carico durante il monitoraggio aiutano il tuo MariaDB? Bene, come ho detto sopra, queste sono una delle poche cose ancora un fattore importante per i controlli di routine quotidiani. Ora, questo ti aiuta anche a identificare se si tratta di occorrenze periodiche o casuali. Se periodico, potrebbe essere correlato a backup in esecuzione in uno dei nodi del database MariaDB oppure è una query massiccia che richiede l'ottimizzazione. Ad esempio, query errate senza indici appropriati o utilizzo non bilanciato del recupero dei dati come il confronto di stringhe per una stringa così grande. Ciò può essere innegabilmente inapplicabile per i database di tipo OLTP, soprattutto se è davvero la natura e i requisiti della tua applicazione. Utilizzare meglio altri strumenti analitici come MariaDB Columnstore o altri strumenti di elaborazione analitica di terze parti (Apache Spark, Kafka o MongoDB, ecc.) per il recupero di dati di stringhe di grandi dimensioni e/o la corrispondenza di stringhe.

Quindi, con tutte queste aree chiave monitorate, la domanda è:come devono essere monitorate? Deve essere monitorato almeno al minuto. Con un monitoraggio raffinato, ad es. le metriche collettive al secondo possono essere ad alta intensità di risorse e molto avido in termini di risorse. Sebbene mezzo minuto di collettività sia accettabile soprattutto se i tuoi dati e l'RPO (obiettivo del punto di ripristino) sono molto bassi, quindi hai bisogno di metriche dei dati più granulari e in tempo reale. È molto importante poter controllare l'intera immagine del cluster di database. A parte questo, è anche meglio e importante che ogni volta che si monitorano le metriche, si disponga dello strumento giusto per attirare la propria attenzione quando le cose sono in pericolo o anche solo avvisi. L'utilizzo dello strumento appropriato come ClusterControl consente di gestire queste aree chiave da monitorare. Sto utilizzando una versione gratuita o una community edition di ClusterControl che mi aiuta a monitorare i miei nodi senza alcun problema dall'installazione fino al monitoraggio dei nodi con pochi clic. Ad esempio, guarda gli screenshot seguenti:

Fornisce anche una base per nodo con una semplice panoramica del grafico,

o con un modello di dati più potente e ricco che supporta anche il linguaggio di query utilizzando Prometheus, può fornirti un'analisi delle prestazioni del tuo database MariaDB sulla base di dati storici confrontando le sue prestazioni in modo tempestivo. Ad esempio,

Questo ti fornisce solo metriche più visibili. Quindi vedi quanto sia davvero importante avere lo strumento giusto per monitorare il tuo database MariaDB in un cloud ibrido.

Monitoraggio collettivo delle variabili statistiche MariaDB

Di tanto in tanto, non può essere inevitabile che le versioni del database di MariaDB producano nuove statistiche per monitorare o migliorare la natura del monitoraggio del database fornendo più variabili di stato e perfezionando i valori da considerare.

Byte inviati/ricevuti

I byte inviati o ricevuti sono correlati all'attività di rete ed è una delle aree chiave da guardare fianco a fianco, specialmente in una topologia di cloud ibrido. Ciò ti consente di determinare quale nodo è il più colpito o attribuire ai problemi di prestazioni che stanno soffrendo all'interno del tuo database MariaDB. È molto importante in quanto puoi verificare se può esserci un degrado in termini di hardware come il tuo dispositivo di rete o il dispositivo di archiviazione sottostante per il quale la sincronizzazione delle pagine sporche può richiedere troppo tempo.

Guarda lo screenshot di esempio,

Carica cluster

Questa è più l'attività del database di quante modifiche o recupero dei dati sono stati interrogati o eseguiti finora dall'uptime del server. Ti aiuta a escludere che tipo di query influiscono maggiormente sulle prestazioni del cluster di database. Ciò consente di fornire margini di miglioramento, in particolare per quanto riguarda il bilanciamento del carico delle richieste del database.

In quanto tali, ci sono tonnellate di variabili da considerare in un server di database MariaDB. La cosa più importante da tenere in considerazione qui è lo strumento che stai utilizzando per monitorare il tuo cluster di database. Con ClusterControl (Community Edition), mi offre più modi con la flessibilità di guardare in un database MariaDB. Vedi l'esempio qui sotto,

Poi puoi anche selezionare dal menu a discesa le altre variabili da considerare,

Questo è molto utile e ti aiuta a determinare, ad esempio, in una topologia di replica in un cloud ibrido. Puoi ottenere una rapida panoramica di qual è lo stato e le prestazioni relative alla rete, ma anche con altri puntatori variabili da considerare e verificare quali sono i colli di bottiglia che influirebbero sulle prestazioni di MariaDB in una topologia di cloud ibrido. Puoi determinare se la tua applicazione è avida di scritture, quindi la replica e il trasferimento di rete sono interessati, puoi ottenere l'interattività del cluster all'interno di due o più infra cloud. È meglio determinare quanto bene i tuoi nodi possono gestire lo stress. Soprattutto durante lo stress test prima di apportare modifiche specifiche all'applicazione, è sempre meglio provare a testare per determinare la gestione della capacità del prodotto dell'applicazione e determinare se i nodi del database e la progettazione attuali possono gestire il carico dei requisiti dell'applicazione.

Per metriche di dati più dettagliate e dettagliate, puoi ottenere più dati utilizzando il monitoraggio basato su agenti. Vedi sotto,

Così ti avvicinerai al monitoraggio del tuo cluster MariaDB. Una visualizzazione perfetta è sempre più facile e veloce da gestire. Quando le cose vanno male, non puoi permetterti di perdere la tua produttività e anche i tempi di inattività possono avere un impatto sulla tua attività. Sebbene avere una versione gratuita non ti offra il lusso e il comfort nella gestione di database ad alto traffico; avere allarmi, notifiche e gestione del database in un'area è un componente aggiuntivo intuitivo che ClusterControl può fare.

Conclusione

Il monitoraggio dei server di database MariaDB in un ambiente cloud ibrido non è facile ed è anche complicato soprattutto quando ci sono numeri di servizi e relazioni complesse che formulano l'intero stack della tua tecnologia. L'utilizzo degli strumenti giusti per il monitoraggio ti aiuta a gestire la tua applicazione in modo efficace e a migliorare la produttività allo stesso tempo. Inoltre, con i giusti strumenti di monitoraggio in mano, avrai più tempo per concentrarti sul miglioramento delle tue applicazioni insieme ad altri processi aziendali.