MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Monitorowanie serwera Percona dla MongoDB — kluczowe wskaźniki

Podczas uruchamiania krytycznych usług baz danych w środowisku produkcyjnym musimy znać i monitorować bazę danych. Musisz zrozumieć kluczowe metryki w używanej bazie danych. Na przykład, gdy uruchamiasz MongoDB z silnikiem magazynu WiredTiger, musisz znać połączenia, uwierzytelnianie, operacje, opóźnienie replikacji, błędy stron, blokowanie itp.

W tym blogu wyjaśnimy kilka kluczowych wskaźników używanych do monitorowania serwera Percona pod kątem MongoDB.

Połączenia z bazą danych

Połączenia z bazą danych to jeden z ważnych kluczowych wskaźników w każdej bazie danych. Monitoruje bieżące połączenia/wątki od aplikacji do bazy danych. Możesz sprawdzić bieżące połączenia za pomocą poniższego polecenia:

> db.serverStatus().connections

Informuje o tym, jak bardzo aplikacje uzyskują dostęp do bazy danych. Nagły wzrost liczby połączeń może spowodować problemy z serwerami bazy danych. Czy jest to oczekiwane, czy nie?

ClusterControl udostępnia informacje związane z połączeniami, jak pokazano poniżej:

Operacje na poleceniach

Wskaźniki operacji poleceń monitorują bieżące operacje — wstawianie, aktualizowanie, usuwanie lub wybieranie. Możesz monitorować bieżące operacje poleceń, wykonując poniższe polecenie:

>db.serverStatus().opcounters

Z operacji poleceń naprawdę możesz zobaczyć obciążenie aplikacji, czy jest to ciężki zapis lub odczyt. Z tego punktu widzenia możesz podejmować pewne decyzje, np. jeśli masz duży ruch związany z odczytami, możesz chcieć przeskalować węzły drugorzędne w celu dystrybucji zapytań odczytu.

Operacje poleceń monitorowania w ClusterControl są proste, wystarczy włączyć monitorowanie oparte na agentach, aby zobaczyć metryki OpsCounter w panelu MongoDB Server, jak pokazano poniżej:

Opóźnienia zestawu replik

Gdy uruchamiasz architekturę ReplicaSet lub ShardCluster, jednym z ważnych kluczowych parametrów jest opóźnienie replikacji. Opóźnienie replikacji występuje, gdy węzły drugorzędne nie mogą dogonić danych zapisywanych w węźle podstawowym. Przyczyny tego mogą być różne:opóźnienie sieci, przepustowość dysku, wolne zapytania itp.

Możesz sprawdzić bieżące informacje o opóźnieniu replikacji, uruchamiając poniższe polecenie na węźle podstawowym:

> rs.printSlaveReplicationInfo() 

Wskaźniki informacji o opóźnieniu są podawane w sekundach, więc przy dużych równoczesnych połączeniach może opóźnić się o kilka sekund na węzłach drugorzędnych, ponieważ replikacja w mongodb jest asynchroniczna.

W ClusterControl metryki Max Replication Lag można znaleźć w MongoDB Replicaset panel monitorowania.

Błędy stron

Błędy strony występują najczęściej w aplikacjach o wysokim współbieżności i dużym obciążeniu. Błędy strony zdarzają się, gdy proces mongodb chce pobrać dane, ale nie są one dostępne w pamięci, wtedy serwer mongodb odczytuje dane z dysku.

Aby monitorować bieżący stan błędów stron, możesz użyć poniższego polecenia:

>db.serverStatus().extra_info.page_faults

Podaje liczbę błędów strony. Wartość może wzrosnąć przy dużym obciążeniu, a serwer może mieć niską wydajność. Możesz również sprawdzić dziennik powolnych zapytań.

Blokowanie

Blokowanie jest również ważną metryką w MongoDB, zwykle ma miejsce w aplikacjach o dużym obciążeniu z wieloma transakcjami na tym samym zbiorze danych. Blokowanie może spowodować poważne problemy z wydajnością.

Możesz sprawdzić bieżące operacje blokowania w bazie danych za pomocą poniższego polecenia:

>db.currentOp()

Gdy uruchamiamy polecenie db.currentOp(), pojawia się kilka informacji związanych z blokowaniem. ClusterControl monitoruje Global Lock na swoim pulpicie MongoDB, jak pokazano poniżej:

Wnioski

Oto niektóre z ważnych kluczowych metryk, które należy monitorować w Percona Server dla MongoDB. Zapewniają podgląd w czasie rzeczywistym tego, co dzieje się na serwerze i mogą wykryć wszelkie anomalie, na których można podjąć działania. ClusterControl zapewnia kilka pulpitów nawigacyjnych, które zapewniają widoczność baz danych MongoDB.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $replaceAll

  2. Mongodb - Różnica między uruchomionymi bazami danych mongo i mongod

  3. Jak stworzyć użytkownika w mongodb za pomocą docker-compose

  4. Jak zatrzymać serwer mongodb w systemie Windows?

  5. Czy istnieje sposób na atomową aktualizację dwóch kolekcji w MongoDB?