Co to jest polecenie, aby uzyskać liczbę klientów podłączonych do określonego serwera MongoDB?Sprawdź bieżącą liczbę połączeń do MongoDb
Odpowiedz
połączyć się z bazą danych administratora i uruchomić db.serverStatus()
:
> var status = db.serverStatus()
> status.connections
{"current" : 21, "available" : 15979}
>
można uzyskać bezpośrednio poprzez odpytywanie
db.serverStatus().connections
Aby zrozumieć, co ma MongoDB za db.serverStatus().connections
odpowiedź na myśli, zapoznać się z dokumentacją here.
połączenia
"connections" : { "current" : <num>, "available" : <num>, "totalCreated" : NumberLong(<num>) },
połączenia Dokument, który informuje o stanie połączenia. Użyj tych wartości do oceny bieżących wymagań obciążenia i pojemności serwera.
connections.current Liczba przychodzących połączeń od klientów do serwera bazy danych. Ta liczba obejmuje bieżącą sesję powłoki. Rozważ wartość connections.available, aby dodać więcej kontekstu do tego odniesienia.
Wartość będzie zawierać wszystkie połączenia przychodzące, w tym wszelkie połączenia powłoki lub połączenia z innych serwerów, takich jak elementy zestawu replik lub instancje klasy Mongos.
connections.available Liczba nieużywanych połączeń przychodzących. Rozważ tę wartość w połączeniu z wartością connections.current, aby zrozumieć obciążenie połączenia w bazie danych, oraz w dokumencie Ustawienia limitu ulimit systemu UNIX, aby uzyskać więcej informacji o progach systemowych dostępnych połączeń.
connections.totalCreated Liczba wszystkich połączeń przychodzących utworzonych na serwerze. Ta liczba obejmuje połączenia, które zostały zamknięte.
db.serverStatus()
nie przyłączy otworzyłem drzwi i skorzystaj daje ale nie pokazuje połączenia z których klient. Aby uzyskać więcej informacji, możesz użyć tego polecenia: sudo lsof | grep mongod | grep TCP
. Potrzebuję go, gdy wykonuję replikację, a węzeł główny ma wiele połączeń z klientami większych niż drugorzędne.
$ sudo lsof | grep mongod | grep TCP
mongod 5733 Al 6u IPv4 0x08761278 0t0 TCP *:28017 (LISTEN)
mongod 5733 Al 7u IPv4 0x07c7eb98 0t0 TCP *:27017 (LISTEN)
mongod 5733 Al 9u IPv4 0x08761688 0t0 TCP 192.168.1.103:27017->192.168.1.103:64752 (ESTABLISHED)
mongod 5733 Al 12u IPv4 0x08761a98 0t0 TCP 192.168.1.103:27017->192.168.1.103:64754 (ESTABLISHED)
mongod 5733 Al 13u IPv4 0x095fa748 0t0 TCP 192.168.1.103:27017->192.168.1.103:64770 (ESTABLISHED)
mongod 5733 Al 14u IPv4 0x095f86c8 0t0 TCP 192.168.1.103:27017->192.168.1.103:64775 (ESTABLISHED)
mongod 5733 Al 17u IPv4 0x08764748 0t0 TCP 192.168.1.103:27017->192.168.1.103:64777 (ESTABLISHED)
Pokazuje to, że obecnie mam pięć połączeń otwartych do portu MongoDB (27017) na moim komputerze. W moim przypadku łączę się z MongoDB z serwera Scalatra i korzystam ze sterownika MongoDB Casbah, ale zobaczysz te same połączenia TCP TCP niezależnie od używanego klienta (pod warunkiem, że łączą się za pomocą TCP/IP IP).
Próbowałem zobaczyć wszystkie połączenia dla bazy danych mongo, wykonując następujące polecenie.
netstat -anp --tcp --udp | grep mongo
Polecenie to może pokazać więcej każdego połączenia tcp dla mongodb.
tcp 0 0 10.26.2.185:27017 10.26.2.1:2715 ESTABLISHED 1442/./mongod
tcp 0 0 10.26.2.185:27017 10.26.2.1:1702 ESTABLISHED 1442/./mongod
tcp 0 0 10.26.2.185:27017 10.26.2.185:39506 ESTABLISHED 1442/./mongod
tcp 0 0 10.26.2.185:27017 10.26.2.185:40021 ESTABLISHED 1442/./mongod
tcp 0 0 10.26.2.185:27017 10.26.2.185:39509 ESTABLISHED 1442/./mongod
tcp 0 0 10.26.2.185:27017 10.26.2.184:46062 ESTABLISHED 1442/./mongod
tcp 0 0 10.26.2.185:27017 10.26.2.184:46073 ESTABLISHED 1442/./mongod
tcp 0 0 10.26.2.185:27017 10.26.2.184:46074 ESTABLISHED 1442/./mongod
W OS X, też zobaczyć połączenia bezpośrednio na interfejsie sieciowym, zrób:
$ lsof -n -i4TCP:27017
mongod 2191 inanc 7u IPv4 0xab6d9f844e21142f 0t0 TCP 127.0.0.1:27017 (LISTEN)
mongod 2191 inanc 33u IPv4 0xab6d9f84604cd757 0t0 TCP 127.0.0.1:27017->127.0.0.1:56078 (ESTABLISHED)
stores.te 18704 inanc 6u IPv4 0xab6d9f84604d404f 0t0 TCP 127.0.0.1:56078->127.0.0.1:27017 (ESTABLISHED)
Nie ma potrzeby korzystania
grep
etc, wystarczy użyć argumentówlsof
„s .Aby zobaczyć połączenia w interfejsie użytkownika MongoDb, zobacz odpowiedź @ milana (, którą właśnie edytowałem:).
db.runCommand ({ "connPoolStats": 1})
----> { numClientConnections ":" 0 " numAScopedConnections": 0, "totalInUse": 0 , "totalAvailable": 0, "totalCreated": 0, "gospodarze": {
},
"replicaSets" : {
},
"ok" : 1
}
Połącz się z MongoDB za pomocą powłoki mongo i wykonaj następujące polecenie.
db.serverStatus().connections
np:
mongo> db.serverStatus().connections
{ "current" : 3, "available" : 816, "totalCreated" : NumberLong(1270) }
- 1. Sprawdź liczbę połączeń z serwerem Tomcat
- 2. MongoDB: Zwiększenie połączeń Max MongoDB
- 3. Sprawdź bieżącą wersję węzła
- 4. policzyć liczbę połączeń klauzuli
- 5. mongodb i php: buforowanie połączeń
- 6. OpenSSL konfiguruje maksymalną liczbę połączeń
- 7. Jak określić liczbę połączeń wymaganych w puli połączeń?
- 8. Sprawdź liczbę wierszy w CodeIgniter
- 9. MongoDB: sprawdź połączenie z DB
- 10. Sprawdź wersję sterownika php MongoDB
- 11. Sprawdź, czy mongoDB jest podłączony
- 12. Nginx: Ogranicz liczbę równoczesnych połączeń dla IP do backendu
- 13. Mongoose.js tworzy wiele połączeń do MongoDB z jednej connect() zadzwonić
- 14. Jak znaleźć liczbę równoczesnych połączeń SQL Server
- 15. MongoDB wstawia pływak, próbując wstawić liczbę całkowitą
- 16. MongoDB/Mongoose znaleźć liczbę wyników przed
- 17. Sprawdź, czy data jest przed bieżącą datą (Swift)
- 18. rozszerzenie Lua: sprawdź liczbę parametrów przekazanych do funkcji
- 19. MongoDB: jak policzyć liczbę kluczy w dokumencie?
- 20. Jak zwrócić liczbę zaktualizowanych obiektów w mongodb?
- 21. Uzyskaj bieżącą liczbę godzin i minut za pomocą chrono :: time_point
- 22. Jak uzyskać łączną i bieżącą liczbę slajdów karuzeli
- 23. Pętla Wordpress: pobierz bieżącą liczbę postów wewnątrz pętli
- 24. Sprawdź liczbę parametrów przekazanych w funkcji Python
- 25. Sprawdź, czy zainstalowano sterownik PHP MongoDB
- 26. Sprawdź czy wartości Matchs w MongoDB
- 27. Prześlij bieżącą gałąź do Gerrit
- 28. Prawą kwerendę, aby uzyskać aktualną liczbę połączeń w PostgreSQL DB
- 29. nodejs - Dlaczego Node.js może obsłużyć dużą liczbę jednoczesnych połączeń trwałych?
- 30. Ograniczanie wyników w MongoDB, ale wciąż otrzymujesz pełną liczbę?
Polecenie to zwraca wiele wpisów dla pojedynczego połączenia: http://stackoverflow.com/a/42930337/1843751 – ignite
proponuję pomocą -i flagę lsof. Wtedy dostajesz tylko 1 wpis dla każdego połączenia i nie potrzebujesz grep dla TCP. tj. 'sudo lsof -i | grep mongod' – datdo