sql >> Database >  >> RDS >> MariaDB

MariaDB-prestaties bewaken in een hybride cloud

Prestaties in onze MariaDB-database is een van de gebieden die we nauwlettend willen volgen en observeren in een productieomgeving en de tijdige werking ervan. Het kan extreem veeleisend zijn voor tijd, werk en geld als de architecturale opstelling een Hybrid Cloud gebruikt. Niet alleen dat, er zijn zulke bepaalde gebieden om naar te kijken, met name de netwerktussenpersoon die zijn connectiviteit bedient als een on-premise of een privécloud die communiceert met de openbare cloud (GCP, AWS, Azure, enz.) en vice versa .

Deze blog gaat over het monitoren van de prestaties van uw MariaDB-databases op een Hybrid Cloud-infrastructuur. We bieden u de basisprincipes en de belangrijkste sleutelindicatoren bij het bewaken van de prestaties van uw MariaDB-database binnen een hybride cloudconfiguratie.

Waarom heb je prestatiebewaking nodig?

Op een hybride cloud kan het ingewikkeld zijn om elke dienst die u gebruikt te controleren. In tegenstelling tot uw eigen datacenter of uw private cloud heeft u volledige controle over de hardware- en software-infrastructuur. Met de openbare cloud zijn er beperkingen op de services die u hebt aangeboden en het kan extra kosten met zich meebrengen als u verschillende services wilt die u van statistieken en logboeken voorzien. Beveiliging is ook een punt van zorg met betrekking tot uw vertrouwelijke gegevens die worden verzameld.

Performance Monitoring helpt te bepalen hoe efficiënt en hoe snel uw databases draaien in de cloud, on-premise of private of public cloud. In de praktijk een reeks geteste en resultaatgerichte processen en tools die u realtime of periodieke statistieken zullen opleveren.

Binnen een hybride cloud zijn niet alle tools voor softwarebewaking gebouwd om de belangrijkste meetgegevens te beheren die moeten worden geobserveerd en gecontroleerd. U moet het idee en de kennis hebben om de vereiste statistieken en vereisten te bepalen die de tool kan bieden. Bij een hybride cloud wordt verwacht dat de aard van hoe een hybride cloud werkt complex kan zijn. De diensten zijn sterk gedistribueerd en vermengd met andere diensten die niet aan één aanbieder gebonden zijn.

In dat opzicht heeft uw monitoringsoftware deze specialiteiten en heeft het ook de mogelijkheid om te identificeren en te ontkoppelen bij welke cloud het hoort. Monitoringsoftware of -tools moeten de mogelijkheid hebben om knelpunten, beveiligingsproblemen en latenties aan te pakken, schaalbaarheid te bieden, op de hoogte te stellen van lopende problemen en voorspellingen te doen. De voorspelling kan verdere gevolgen voorkomen die kunnen leiden tot een ramp of impact op de efficiëntie van uw MariaDB-databases. Dit helpt het hele team, inclusief infrastructuuringenieurs, database-engineers, serverbeheerders en ontwikkelaars, om ervoor te zorgen dat de databaseservers in orde zijn en werken volgens de verwachtingen.

Aandachtspunten voor databasecontrole

Bij het bewaken van uw MariaDB-databasecluster (replicatie of Galera) of node, zijn er twee belangrijke dingen om rekening mee te houden:het besturingssysteem en de database zelf. U moet bepalen welke statistieken u van beide kanten gaat controleren en hoe u dit gaat doen. U moet de metriek altijd in de context van uw systeem controleren en u moet op zoek gaan naar wijzigingen in het gedragspatroon.

In de meeste gevallen moet u meerdere tools gebruiken (aangezien het bijna onmogelijk is om er een te vinden die alle gewenste statistieken dekt.) 

Houd er rekening mee dat wanneer een van uw statistieken wordt beïnvloed, dit ook van invloed kan zijn op andere, waardoor het oplossen van het probleem ingewikkelder wordt. Het hebben van een goed monitoring- en waarschuwingssysteem is belangrijk om deze taak zo eenvoudig mogelijk te maken.

Bewaak altijd uw serveractiviteit (netwerk, schijf, belasting, geheugen en CPU)

Het bewaken van uw serveractiviteit kan ook een complexe taak zijn als u een zeer gecompliceerde stack heeft die verweven is met uw database-architectuur. Voor een MariaDB-database is het echter altijd het beste om uw knooppunten altijd als een speciale server in te stellen om een ​​volledige introspectie per knooppunt te krijgen. Hoewel dat u er niet van weerhoudt om alle reservebronnen te gebruiken, vindt u hieronder de belangrijkste punten waar u op moet letten.

Netwerk

Op een Hybrid Cloud-infrastructuur is dit een van de belangrijkste aandachtspunten, aangezien u rekening moet houden met het type ontwerp en hoe het communiceert van de on-premise of private cloud naar de public cloud en vice versa. Hoe dan ook, u hebt een van de clusters of knooppunten die zijn rol specialiseren, hetzij als primaire voor het ontvangen van schrijfbewerkingen, hetzij als noodherstel. In dat opzicht wilt u niet dat uw herstelknooppunten latenties hebben, erger nog, het krijgt grote replicatievertragingen. Telkens wanneer het vertraging oploopt en wanneer het primaire cluster van een bepaalde cloud (laten we zeggen uw on-prem) uitvalt, moet uw openbare cloud het overnemen, maar zal in staat zijn om de meest up-to-date gegevens te leveren. Wanneer dit kan gebeuren, moet u mogelijk een pre-failovermechanisme toevoegen dat zorgt voor incrementele back-ups of PITR voor het geval sommige transacties of schrijfbewerkingen nog niet zijn toegepast in uw herstelcluster (of in dit geval uw openbare cloudcluster).

Als je Galera gebruikt, is streamingreplicatie sinds MariaDB zijn Galera naar versie 4 heeft geüpgraded, toegevoegd als een van de belangrijkste functies en wijzigingen ten opzichte van de vorige versie. Aangezien streaming-replicatie de nadelen aanpakt die het had in de vorige releases, maar het in staat stelt meer dan 2 GB aan schrijfsets te beheren sinds Galera Cluster 4. Hierdoor kunnen grote transacties worden gefragmenteerd en het wordt ten zeerste aanbevolen om dit alleen op sessieniveau in te schakelen. Dit betekent dat het bewaken van uw netwerkactiviteit erg belangrijk en cruciaal is voor de normale activiteit van uw MariaDB-cluster. Dit zal u helpen te identificeren welk knooppunt het meeste of hoogste netwerkverkeer had op basis van de tijdsperiode.

Een goed voorbeeld van het renderen van netwerkmonitoring is het gebruik van ClusterControl. Het identificeert elk van de knooppunten en geeft een overzicht van de netwerkactiviteit per knooppunt, ongeacht in welke cloud het knooppunt zich bevindt. Zie screenshot hieronder:

CPU, geheugen en laadactiviteit

Laat me in het kort deze drie punten noemen waar je op moet letten bij het monitoren. In deze sectie is het altijd het beste dat u de volgende gebieden tegelijk beter kunt observeren. Het is snel en gemakkelijk te begrijpen en helpt bij het uitsluiten van een prestatieknelpunt of het identificeren van bugs die ervoor zorgen dat uw knooppunten vastlopen of de andere knooppunten beïnvloeden of zelfs de mogelijkheid hebben dat een cluster uitvalt.

Dus hoe helpen CPU, geheugen en laadactiviteit bij monitoring je MariaDB? Welnu, zoals ik hierboven heb vermeld, zijn dat een van de weinige dingen die toch een grote factor zijn voor dagelijkse routinecontroles. Dit helpt u ook te bepalen of dit periodieke of willekeurige gebeurtenissen zijn. Als het periodiek is, kan het te maken hebben met back-ups die worden uitgevoerd in een van uw MariaDB-databaseknooppunten, of het is een enorme vraag die moet worden geoptimaliseerd. Bijvoorbeeld slechte query's zonder goede indexen, of onevenwichtig gebruik van het ophalen van gegevens, zoals het doen van een tekenreeksvergelijking voor zo'n grote tekenreeks. Dat kan onmiskenbaar niet van toepassing zijn op databases van het OLTP-type, vooral als het echt de aard en vereisten van uw toepassing zijn. Gebruik beter andere analytische tools zoals MariaDB Columnstore of andere analytische verwerkingstools van derden (Apache Spark, Kafka of MongoDB, enz.) voor het ophalen van grote stringgegevens en/of het matchen van strings.

Dus met al deze belangrijke gebieden die worden bewaakt, is de vraag, hoe dit zal worden gecontroleerd? Het moet minimaal per minuut worden gecontroleerd. Met verfijnde monitoring, d.w.z. per seconde van collectieve statistieken, kan het arbeidsintensief zijn en veel hebzuchtig in termen van uw bronnen. Hoewel een halve minuut collectiviteit acceptabel is, vooral als uw gegevens en RPO (recovery point objective) erg laag zijn, heeft u meer gedetailleerde en realtime gegevensstatistieken nodig. Het is erg belangrijk dat u het hele plaatje van uw databasecluster kunt overzien. Afgezien hiervan is het ook het beste en belangrijk dat je, ongeacht welke statistieken je bewaakt, de juiste tool hebt om je aandacht te trekken wanneer dingen in gevaar zijn of zelfs alleen maar waarschuwingen. Door de juiste tool zoals ClusterControl te gebruiken, kunt u deze belangrijke te bewaken gebieden beheren. Ik gebruik een gratis versie of community-editie van ClusterControl waarmee ik met slechts een paar klikken mijn nodes kan monitoren, van installatie tot monitoring van nodes. Zie bijvoorbeeld de onderstaande schermafbeeldingen:

Het biedt ook een per knooppunt basis met een eenvoudig grafiekoverzicht,

of met een krachtiger en uitgebreider gegevensmodel dat ook querytaal ondersteunt met Prometheus, kan u een analyse geven van hoe uw MariaDB-database presteert op basis van historische gegevens die de prestaties ervan tijdig vergelijken. Bijvoorbeeld,

Dat levert je alleen maar meer zichtbare statistieken op. U ziet dus hoe belangrijk het is om de juiste tool te hebben bij het monitoren van uw MariaDB-database in een Hybrid Cloud.

Collectieve bewaking van uw statistische MariaDB-variabelen

Van tijd tot tijd kan het niet onvermijdelijk zijn dat MariaDB-databaseversies nieuwe statistieken zullen produceren om de aard van het monitoren van de database te controleren of te verbeteren door meer statusvariabelen te bieden en waarden te verfijnen om naar te kijken.

Bytes verzonden/ontvangen

De verzonden of ontvangen bytes correleren met de netwerkactiviteit en is een van de belangrijkste gebieden om naast elkaar te bekijken, vooral in een hybride cloudtopologie. Hiermee kunt u bepalen welk knooppunt het meest wordt beïnvloed of wordt toegeschreven aan de prestatieproblemen binnen uw MariaDB-database. Het is erg belangrijk omdat u kunt controleren of er sprake kan zijn van degradatie in termen van hardware, zoals uw netwerkapparaat of het onderliggende opslagapparaat waarvoor het synchroniseren van vuile pagina's te veel tijd in beslag kan nemen.

Zie het voorbeeld screenshot,

Clusterbelasting

Dit is meer de database-activiteit van hoeveel wijzigingen of het ophalen van gegevens er tot nu toe zijn opgevraagd of gedaan sinds de uptime van de server. Het helpt u uit te sluiten wat voor soort query's het meest van invloed zijn op de prestaties van uw databasecluster. Dit stelt u in staat om ruimte voor verbetering te bieden, met name bij het balanceren van de belasting van uw databaseverzoeken.

Als zodanig zijn er talloze variabelen om naar te kijken in een MariaDB-databaseserver. Het belangrijkste waar je hier rekening mee moet houden is de tool die je gebruikt voor het monitoren van je databasecluster. Met ClusterControl (Community Edition) biedt het me meer manieren met de flexibiliteit om naar te kijken in een MariaDB-database. Zie onderstaand voorbeeld,

Vervolgens kunt u in het vervolgkeuzemenu ook de andere variabelen selecteren om naar te kijken,

Dit is erg handig en helpt u bij het bepalen van bijvoorbeeld een replicatietopologie in een hybride cloud. U kunt een snel overzicht krijgen van wat de status en prestaties zijn met betrekking tot het netwerk, maar ook met andere variabele aanwijzingen om te overwegen en te controleren wat de knelpunten zijn die van invloed zijn op uw MariaDB-prestaties in een hybride cloudtopologie. U kunt bepalen of uw toepassing gretig is met schrijven, dan wordt de replicatie en netwerkoverdracht beïnvloed, u kunt de clusterinteractiviteit binnen twee of meer cloudinfra krijgen. Het is het beste om te bepalen hoe goed uw knooppunten de stress aankunnen. Vooral tijdens stresstests voordat specifieke wijzigingen in uw applicatie worden doorgevoerd, is het altijd het beste om te proberen en te testen om het capaciteitsbeheer van uw applicatieproduct te bepalen en te bepalen of uw huidige databaseknooppunten en ontwerp de belasting van uw applicatievereisten aankunnen.

Voor gedetailleerdere en uitgebreidere gegevens kunt u meer gegevens krijgen met behulp van agentgebaseerde controle. Zie hieronder,

Dit is hoe u de monitoring van uw MariaDB-cluster aanpakt. Een perfecte visualisatie is altijd makkelijker en sneller te beheren. Als het mis gaat, kunt u het zich niet veroorloven uw productiviteit te verliezen en ook de uitvaltijd kan gevolgen hebben voor uw bedrijf. Hoewel het hebben van een gratis versie u niet de luxe en het comfort biedt bij het beheren van databases met veel verkeer; het hebben van alarmen, meldingen en databasebeheer in één gebied is de add-ons die ClusterControl kan doen.

Conclusie

Het bewaken van uw MariaDB-databaseservers in een hybride cloudomgeving is niet eenvoudig en het is ook ingewikkeld, vooral wanneer er een groot aantal services en complexe relaties zijn die de hele stapel van uw technologie vormen. Door de juiste tools voor monitoring te gebruiken, kunt u uw applicatie effectief beheren en tegelijkertijd de productiviteit verbeteren. Met de juiste monitoringtools in de hand heeft u ook meer tijd om u te concentreren op het verbeteren van uw applicaties en andere bedrijfsprocessen.


  1. PGError:FOUT:toestemming geweigerd voor relatie (bij gebruik van Heroku)

  2. stop bij compilatiefout in een sqlplus-script

  3. "Fatale fout interne verbinding" bij het uitvoeren van een native gecompileerde opgeslagen procedure in SQL Server 2019 (bekende bug)

  4. 2PL, rigoureus versus strikt model, is er enig voordeel?