sql >> Database >  >> NoSQL >> MongoDB

Monitoring Percona Server voor MongoDB - Belangrijkste metrische gegevens

Als we kritieke databaseservices in productie draaien, moeten we de database kennen en controleren. U moet de belangrijkste statistieken begrijpen in de database die u gebruikt. Als u bijvoorbeeld MongoDB uitvoert met een WiredTiger-opslagengine, moet u verbindingen, authenticatie, bewerkingen, replicatievertraging, paginafouten, vergrendeling, enz. kennen.

In deze blog leggen we enkele belangrijke statistieken uit die worden gebruikt om Percona Server voor MongoDB te controleren.

Databaseverbindingen

Databaseverbindingen zijn een van de belangrijkste meetgegevens in elke database. Het bewaakt uw huidige verbindingen/threads van apps naar de database. U kunt de huidige verbindingen controleren via het onderstaande commando:

> db.serverStatus().connections

Het geeft een idee van hoeveel uw toepassingen toegang hebben tot de database. Een plotselinge piek in het aantal verbindingen kan problemen met uw databaseservers veroorzaken. Wordt het verwacht of niet?.

ClusterControl biedt informatie met betrekking tot de verbindingen zoals hieronder weergegeven:

Opdrachtbewerkingen

De metrische gegevens over opdrachtbewerkingen bewaken uw huidige bewerkingen, ofwel invoegen, bijwerken, verwijderen of selecteren. U kunt de huidige commandobewerkingen volgen door het onderstaande commando uit te voeren:

>db.serverStatus().opcounters

Vanuit de opdrachtbewerkingen kun je echt de werkbelasting van je applicatie zien, of het nu veel schrijven of lezen is. Vanuit dit standpunt kun je een aantal beslissingen nemen, bijvoorbeeld als je veel leesverkeer hebt, wil je misschien de secundaire knooppunten schalen om de leesquery's te distribueren.

Het bewaken van opdrachtbewerkingen in ClusterControl is eenvoudig, u hoeft alleen Agent Based Monitoring in te schakelen om de OpsCounter-statistieken in het MongoDB Server-dashboard te zien, zoals hieronder weergegeven:

ReplicaSet Lags

Wanneer u ReplicaSet- of ShardCluster-architectuur uitvoert, is een belangrijke belangrijke statistiek de replicatievertraging. Replicatievertraging treedt op wanneer secundaire knooppunten de gegevens die naar het primaire knooppunt worden geschreven, niet kunnen inhalen. De redenen hiervoor kunnen variëren van netwerklatentie, schijfdoorvoer, trage zoekopdrachten, enz.

U kunt de huidige informatie over replicatievertraging controleren door de onderstaande opdracht uit te voeren op het primaire knooppunt:

> rs.printSlaveReplicationInfo() 

De informatie over vertragingen is in seconden, dus bij zware gelijktijdige verbindingen kan het een paar seconden achterblijven op secundaire knooppunten, aangezien de replicatie in mongodb asynchroon is.

In ClusterControl zijn de metrische gegevens Max Replication Lag te vinden in de MongoDB Replicaset controledashboard.

Paginafouten

Paginafouten treden meestal op in toepassingen met veel gelijktijdige en hoge belasting. Paginafouten treden op wanneer het mongodb-proces de gegevens wil ophalen, maar het is niet beschikbaar in het geheugen, waarna de mongodb-server de gegevens van de schijf leest.

Om de huidige status van paginafouten te controleren, kunt u het onderstaande commando gebruiken:

>db.serverStatus().extra_info.page_faults

Het geeft je het aantal paginafouten. De waarde kan toenemen tijdens zware belasting en de server kan slechte prestaties ervaren. Misschien wilt u ook het logbestand voor trage zoekopdrachten controleren.

Vergrendelen

Vergrendelen is ook een belangrijke statistiek in MongoDB, het gebeurt meestal in toepassingen met een hoge belasting met meerdere transacties op dezelfde dataset. Vergrendelen kan ernstige prestatieproblemen veroorzaken.

U kunt de huidige vergrendelingsoperaties in de database controleren met het onderstaande commando:

>db.currentOp()

Als we de opdracht db.currentOp() uitvoeren, is er wat informatie over vergrendeling. ClusterControl controleert Global Lock in zijn MongoDB-dashboard, zoals hieronder weergegeven:

Conclusie

Dit zijn enkele van de belangrijke belangrijke meetgegevens die moeten worden gecontroleerd in Percona Server voor MongoDB. Ze bieden een realtime beeld van wat er op de server gebeurt en kunnen eventuele anomalieën blootleggen waarop u actie kunt ondernemen. ClusterControl biedt enkele dashboards die u inzicht geven in uw MongoDB-databases.


  1. Matrix-subset in aggregatieframework-pijplijn

  2. Tips voor het op afstand beheren van MongoDB

  3. MongoDB opgeslagen procedure-equivalent

  4. MongoDB-projectie van geneste arrays