Quando si eseguono servizi di database critici in produzione, è necessario conoscere e monitorare il database. Devi comprendere le metriche chiave nel database che stai utilizzando. Ad esempio, quando esegui MongoDB con un motore di archiviazione WiredTiger, devi conoscere connessioni, autenticazione, operazioni, ritardo di replica, errori di pagina, blocco, ecc.
In questo blog, spiegheremo alcuni parametri chiave utilizzati per monitorare Percona Server per MongoDB.
Connessioni al database
Le connessioni al database sono una delle metriche chiave importanti in qualsiasi database. Monitora le tue connessioni/thread correnti dalle applicazioni al database. Puoi controllare le connessioni correnti tramite il comando seguente:
> db.serverStatus().connections
Dà un'idea di quanto le tue applicazioni accedono al database. Un picco improvviso nel numero di connessioni può causare problemi ai server di database. È previsto o no?.
ClusterControl fornisce informazioni relative alle connessioni come mostrato di seguito:
Operazioni di comando
Le metriche delle operazioni di comando monitorano le tue operazioni correnti, inserimento, aggiornamento, eliminazione o selezione. Puoi monitorare le operazioni di comando correnti eseguendo il comando seguente:
>db.serverStatus().opcounters
Dalle operazioni di comando, puoi davvero vedere il carico di lavoro dell'applicazione, se è pesante in scrittura o in lettura. Da questo punto di vista, puoi prendere alcune decisioni, ad esempio, se hai un traffico di lettura intenso, potresti voler ridimensionare i nodi secondari per distribuire le query di lettura.
Il monitoraggio delle operazioni dei comandi in ClusterControl è semplice, devi solo abilitare il monitoraggio basato sugli agenti per visualizzare le metriche OpsCounter nel dashboard del server MongoDB come mostrato di seguito:
ReplicaSet Lag
Quando si esegue l'architettura ReplicaSet o ShardCluster, una metrica chiave importante è il ritardo di replica. Il ritardo di replica si verifica quando i nodi secondari non riescono a recuperare il ritardo con i dati scritti nel nodo primario. Le ragioni di ciò possono variare da latenza di rete, velocità effettiva del disco, query lente e così via.
Puoi controllare le informazioni sul ritardo di replica corrente eseguendo il comando seguente sul nodo primario:
> rs.printSlaveReplicationInfo()
La metrica delle informazioni sul ritardo è espressa in secondi, quindi su connessioni simultanee pesanti, potrebbe ritardare di alcuni secondi sui nodi secondari poiché la replica in mongodb è asincrona.
In ClusterControl, i parametri Max Replication Lag possono essere trovati nel MongoDB Replicaset dashboard di monitoraggio.
Errori di pagina
Gli errori di pagina si verificano principalmente in applicazioni simultanee ea carico elevato. Gli errori di pagina si verificano quando il processo mongodb vuole ottenere i dati ma non sono disponibili nella memoria, quindi il server mongodb legge i dati dal disco.
Per monitorare lo stato corrente degli errori di pagina, puoi utilizzare il comando seguente:
>db.serverStatus().extra_info.page_faults
Ti dà il numero di errori di pagina. Il valore potrebbe aumentare durante il carico pesante e il server potrebbe riscontrare prestazioni scadenti. Potresti voler controllare anche il registro delle query lente.
Blocco
Anche il blocco è una metrica importante in MongoDB, di solito si verifica in applicazioni a carico elevato con più transazioni sullo stesso set di dati. Il blocco può causare seri problemi di prestazioni.
Puoi controllare le operazioni di blocco correnti nel database usando il comando seguente:
>db.currentOp()
Quando eseguiamo il comando db.currentOp(), ci sono alcune informazioni relative al blocco. ClusterControl monitora Global Lock nella sua dashboard MongoDB come mostrato di seguito:
Conclusione
Queste sono alcune delle metriche chiave importanti da monitorare in Percona Server per MongoDB. Forniscono una vista in tempo reale di ciò che sta accadendo nel server e possono scoprire eventuali anomalie su cui intervenire. ClusterControl fornisce alcuni dashboard che ti danno visibilità dei tuoi database MongoDB.