2012-01-23 11 views

risposta

73

connettersi al database di amministrazione ed eseguire db.serverStatus():

> var status = db.serverStatus() 
> status.connections 
    {"current" : 21, "available" : 15979} 
> 

È possibile ottenere direttamente interrogando

db.serverStatus().connections 

Per capire che cosa significa la risposta di MongoDb db.serverStatus().connections, leggere la documentazione here.

connessioni

"connections" : { 
    "current" : <num>, 
    "available" : <num>, 
    "totalCreated" : NumberLong(<num>) 
}, 

connessioni Un documento che riporta sullo stato delle connessioni. Utilizzare questi valori per valutare il carico corrente e i requisiti di capacità del server.

connections.current Il numero di connessioni in ingresso dai client al server di database. Questo numero include la sessione corrente della shell. Considera il valore di connections.available per aggiungere più contesto a questo dato.

Il valore includerà tutte le connessioni in ingresso incluse le connessioni di shell o le connessioni da altri server, ad esempio i membri del set di repliche o le istanze di mongos.

connections.available Il numero di connessioni in ingresso non utilizzato. Considerare questo valore in combinazione con il valore di connections.current per comprendere il carico di connessione sul database e il documento di configurazione ulimit UNIX per ulteriori informazioni sulle soglie di sistema sulle connessioni disponibili.

connections.totalCreated Conte di tutte le connessioni in entrata creati al server. Questo numero include connessioni che hanno chiuso.

11

db.serverStatus() non fornisce alcuna delle connessioni opend e inutilmente, ma non mostra le connessioni da quale client. Per maggiori informazioni è possibile utilizzare questo comando sudo lsof | grep mongod | grep TCP. Ne ho bisogno quando ho fatto la replica e il nodo primario ha molte connessioni client maggiori di quelle secondarie.

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

Questo dimostra che ho attualmente cinque connessioni aperte alla porta MongoDB (27017) sul mio computer. Nel mio caso mi sto collegando a MongoDB da un server Scalatra, e sto usando il driver Casbah MongoDB, ma vedrete le stesse connessioni TCP di Lsof indipendentemente dal client usato (a patto che si stiano connettendo tramite TCP/IP).

+1

Questo comando restituisce più voci per una singola connessione: http://stackoverflow.com/a/42930337/1843751 – ignite

+2

io suggerisco di usare il flag -i per lsof. Quindi si ottiene solo una voce per ogni connessione e non è necessario grep per TCP. cioè "sudo lsof -i | grep mongod' – datdo

5

Ho provato a vedere tutte le connessioni per il database mongo seguendo il comando.

netstat -anp --tcp --udp | grep mongo 

Questo comando può mostrare ogni connessione TCP per MongoDB in modo più dettagliato.

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

In OS X, anche vedere le connessioni direttamente sull'interfaccia di rete, basta fare:

$ 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) 
  • alcuna necessità di utilizzare grep ecc, basta usare gli argomenti s' il lsof .

  • Per vedere le connessioni sulla CLI di MongoDb, vedere la risposta di @ milan (che ho appena modificato).

0

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

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

}, 
    "replicaSets" : { 

    }, 
    "ok" : 1 

}

0

Connetti a MongoDB usando mongo-shell ed esegui il seguente comando.

db.serverStatus().connections 

es:

mongo> db.serverStatus().connections 
{ "current" : 3, "available" : 816, "totalCreated" : NumberLong(1270) } 
Problemi correlati