2012-01-23 9 views
35

पर कनेक्शन की वर्तमान संख्या की जांच करें किसी विशेष MongoDB सर्वर से जुड़े क्लाइंट की संख्या प्राप्त करने के लिए आदेश क्या है?MongoDb

उत्तर

73

व्यवस्थापक डेटाबेस से कनेक्ट और db.serverStatus() चलाएँ:

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

आप सीधे प्राप्त कर सकते हैं

db.serverStatus().connections 

क्वेरी करने को समझने के लिए क्या MongoDB के db.serverStatus().connections प्रतिक्रिया मतलब है द्वारा, प्रलेखन here पढ़ें।

कनेक्शन

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

कनेक्शन एक दस्तावेज है कि कनेक्शन की स्थिति पर रिपोर्ट। सर्वर के वर्तमान लोड और क्षमता आवश्यकताओं का आकलन करने के लिए इन मानों का उपयोग करें।

कनेक्शन.current क्लाइंट से डेटाबेस सर्वर तक आने वाले कनेक्शन की संख्या। इस नंबर में वर्तमान शैल सत्र शामिल है। कनेक्शन के मूल्य पर विचार करें। इस डेटाम में अधिक संदर्भ जोड़ने के लिए उपलब्ध है।

मूल्य में सभी आने वाले कनेक्शन शामिल होंगे जिसमें किसी भी शेल कनेक्शन या अन्य सर्वरों से कनेक्शन शामिल हैं, जैसे प्रतिकृति सेट सदस्य या मोंगो उदाहरण।

connections.available अप्रयुक्त भेजे कनेक्शन की संख्या उपलब्ध। डेटाबेस पर कनेक्शन लोड को समझने के लिए कनेक्शन.current के मूल्य के साथ संयोजन में इस मान पर विचार करें, और उपलब्ध कनेक्शन पर सिस्टम थ्रेसहोल्ड के बारे में अधिक जानकारी के लिए UNIX ulimit सेटिंग्स दस्तावेज़।

कनेक्शन.totalCreated सर्वर पर बनाए गए सभी आने वाले कनेक्शनों की गणना। इस नंबर में कनेक्शन शामिल हैं जो बंद होने के बाद से हैं।

11

db.serverStatus() कनेक्शन opend और लाभ का कोई देता है, लेकिन नहीं है जो ग्राहक से कनेक्शन को दर्शाता है। अधिक जानकारी के लिए आप इस कमांड sudo lsof | grep mongod | grep TCP का उपयोग कर सकते हैं। मुझे इसकी आवश्यकता है जब मैंने प्रतिकृति की और प्राथमिक नोड में द्वितीयक से अधिक ग्राहक कनेक्शन अधिक हैं।

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

यह दिखाता है कि मैं वर्तमान में पांच कनेक्शन अपने कंप्यूटर पर MongoDB बंदरगाह (27017) के लिए खुला है। मेरे मामले में मैं एक स्कालैट्रा सर्वर से मोंगोडीबी से कनेक्ट कर रहा हूं, और मैं मोंगोडीबी कैस्बाह ड्राइवर का उपयोग कर रहा हूं, लेकिन क्लाइंट के इस्तेमाल के बावजूद आप उसी एलसीपी कनेक्शन को देखेंगे (जब तक वे टीसीपी/आईपी)।

+1

यह आदेश एक भी कनेक्शन के लिए कई प्रविष्टियाँ रिटर्न: http://stackoverflow.com/a/42930337/1843751 – ignite

+2

मैं lsof के लिए मैं ध्वज का उपयोग कर सुझाव देते हैं। फिर आपको केवल प्रत्येक कनेक्शन में 1 प्रविष्टि मिलती है और टीसीपी के लिए grep की आवश्यकता नहीं होती है। यानी 'सुडो lsof -i | grep mongod' – datdo

5

मैंने निम्नलिखित आदेशों से मोंगो डेटाबेस के लिए सभी कनेक्शन देखने की कोशिश की।

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

यह आदेश अधिक विस्तार से मोंगोडब के लिए प्रत्येक टीसीपी कनेक्शन दिखा सकता है।

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

ओएस एक्स में भी कनेक्शन सीधे नेटवर्क इंटरफेस पर देखते हैं, सिर्फ कार्य करें:

$ 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) 
  • कोई ज़रूरत नहीं grep उपयोग करने के लिए आदि, बस lsof के तर्कों का उपयोग ।

  • मोंगो डीबी के सीएलआई पर कनेक्शन देखने के लिए, @ मिलन का जवाब देखें (जिसे मैंने अभी संपादित किया है)।

0

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

----> { "numClientConnections": 0, "numAScopedConnections": 0, "totalInUse": 0 , "totalAvailable": 0, "totalCreated": 0, "मेजबान": {

}, 
    "replicaSets" : { 

    }, 
    "ok" : 1 

}

0

मोंगो-शैल का उपयोग करके मोंगो डीबी से कनेक्ट करें और निम्न आदेश चलाएं।

db.serverStatus().connections 

उदाहरण के लिए:

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