2012-01-23 15 views

Odpowiedz

73

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.

11

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).

+1

Polecenie to zwraca wiele wpisów dla pojedynczego połączenia: http://stackoverflow.com/a/42930337/1843751 – ignite

+2

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

5

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 
3

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ów lsof „s .

  • Aby zobaczyć połączenia w interfejsie użytkownika MongoDb, zobacz odpowiedź @ milana (, którą właśnie edytowałem:).

0

db.runCommand ({ "connPoolStats": 1})

----> { numClientConnections ":" 0 " numAScopedConnections": 0, "totalInUse": 0 , "totalAvailable": 0, "totalCreated": 0, "gospodarze": {

}, 
    "replicaSets" : { 

    }, 
    "ok" : 1 

}

0

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) } 
Powiązane problemy