sql >> Database teknologi >  >> NoSQL >> MongoDB

Overvågning af Percona Server til MongoDB - Nøglemålinger

Når vi kører kritiske databasetjenester i produktion, skal vi kende og overvåge databasen. Du skal forstå de vigtigste metrics i den database, du bruger. For eksempel, når du kører MongoDB med en WiredTiger-lagringsmotor, skal du kende forbindelser, autentificering, operationer, replikeringsforsinkelse, sidefejl, låsning osv.

I denne blog vil vi forklare nogle nøglemålinger, der bruges til at overvåge Percona Server for MongoDB.

Databaseforbindelser

Databaseforbindelser er en af ​​vigtige nøglemålinger i enhver database. Den overvåger dine nuværende forbindelser/tråde fra applikationer til databasen. Du kan kontrollere aktuelle forbindelser gennem nedenstående kommando:

> db.serverStatus().connections

Det giver en idé om, hvor meget dine applikationer har adgang til databasen. En pludselig stigning i antallet af forbindelser kan forårsage problemer med dine databaseservere. Er det forventet eller ej?.

ClusterControl giver information relateret til forbindelserne som vist nedenfor:

Kommandohandlinger

Kommandooperationsmålingerne overvåger dine nuværende handlinger, enten indsæt, opdater, slet eller vælg. Du kan overvåge aktuelle kommandooperationer ved at udføre nedenstående kommando:

>db.serverStatus().opcounters

Fra kommandohandlingerne kan du virkelig se din applikationsbelastning, om den er tung at skrive eller læse. Fra dette synspunkt kan du træffe nogle beslutninger, f.eks. hvis du har stor læsetrafik, vil du måske skalere de sekundære noder for at distribuere læseforespørgslerne.

Overvågning af kommandooperationer i ClusterControl er ligetil, du skal bare aktivere agentbaseret overvågning for at se OpsCounter-målingerne i MongoDB Server-dashboardet som vist nedenfor:

ReplicaSet Lags

Når du kører ReplicaSet- eller ShardCluster-arkitektur, er en vigtig nøglemåling replikeringsforsinkelsen. Replikationsforsinkelse opstår, når sekundære noder ikke kan hamle op med de data, der skrives til den primære node. Årsagerne til dette kan variere fra netværksforsinkelse, diskgennemstrømning, langsomme forespørgsler osv.

Du kan kontrollere aktuelle replikeringsforsinkelsesoplysninger ved at køre nedenstående kommando på den primære node:

> rs.printSlaveReplicationInfo() 

Forsinkelsesinformationsmetrikken er i sekunder, så på tunge samtidige forbindelser kan den forsinke med et par sekunder på sekundære noder, da replikeringen i mongodb er asynkron.

I ClusterControl kan metrics Max Replication Lag findes i MongoDB Replicaset overvågningsdashboard.

Sidefejl

Sidefejl opstår for det meste i høj samtidige og høje belastningsapplikationer. Sidefejl opstår, når mongodb-processen ønsker at hente dataene, men de ikke er tilgængelige i hukommelsen, så læser mongodb-serveren dataene fra disken.

For at overvåge den aktuelle tilstand af sidefejl kan du bruge nedenstående kommando:

>db.serverStatus().extra_info.page_faults

Det giver dig antallet af sidefejl. Værdien kan stige under kraftig belastning, og serveren kan opleve dårlig ydeevne. Du vil måske også tjekke den langsomme forespørgselslog.

Låser

Låsning er også en vigtig metrik i MongoDB, det sker normalt i højbelastningsapplikationer med flere transaktioner på det samme datasæt. Låsning kan forårsage alvorlige problemer med ydeevnen.

Du kan kontrollere aktuelle låseoperationer i databasen ved at bruge nedenstående kommando:

>db.currentOp()

Når vi kører kommandoen db.currentOp() er der nogle oplysninger relateret til låsning. ClusterControl overvåger Global Lock i MongoDB-dashboardet som vist nedenfor:

Konklusion

Dette er nogle af de vigtige nøglemålinger, der skal overvåges i Percona Server til MongoDB. De giver et realtidsoverblik over, hvad der foregår på serveren, og kan afsløre eventuelle uregelmæssigheder, som du kan gribe ind over for. ClusterControl tilbyder nogle dashboards, som giver dig synlighed af dine MongoDB-databaser.


  1. MongoDB $filter

  2. MongoDB $orderBy

  3. ved hjælp af en variabel i mongodb update

  4. Fjern element fra indlejret array mongodb