কোনও নির্দিষ্ট মঙ্গোডিবি সার্ভারের সাথে সংযুক্ত ক্লায়েন্টের সংখ্যা পাওয়ার জন্য আদেশ কী?
উত্তর:
অ্যাডমিন ডাটাবেসের সাথে সংযুক্ত হয়ে চালান db.serverStatus():
> var status = db.serverStatus()
> status.connections
{"current" : 21, "available" : 15979}
>
আপনি সরাসরি জিজ্ঞাসা করে পেতে পারেন
db.serverStatus().connections
মঙ্গোডিবির db.serverStatus().connectionsপ্রতিক্রিয়ার অর্থ কী তা বোঝার জন্য ডকুমেন্টেশনটি এখানে পড়ুন ।
সংযোগ
"connections" : { "current" : <num>, "available" : <num>, "totalCreated" : NumberLong(<num>) },সংযোগ একটি নথি যা সংযোগের স্থিতি সম্পর্কে রিপোর্ট করে। সার্ভারের বর্তমান লোড এবং ক্ষমতা প্রয়োজনীয়তার মূল্যায়ন করতে এই মানগুলি ব্যবহার করুন।
সংযোগগুলি । বর্তমান ডাটাবেস সার্ভারে ক্লায়েন্ট থেকে আগত সংযোগগুলির সংখ্যা। এই সংখ্যাটিতে বর্তমান শেল সেশন অন্তর্ভুক্ত রয়েছে। সংযোগগুলির মানটি বিবেচনা করুন this এই ডেটুমে আরও প্রসঙ্গ যুক্ত করতে উপলভ্য।
মানটিতে সমস্ত শেল সংযোগ বা অন্যান্য সার্ভারের সংযোগগুলি সহ প্রতিদ্বন্দ্বী সেট সদস্য বা মঙ্গোজের উদাহরণ সহ সমস্ত আগত সংযোগ অন্তর্ভুক্ত থাকবে।
সংযোগগুলি.উপলভ্য অব্যবহৃত আগমন সংযোগের সংখ্যা available ডাটাবেসে সংযোগের বোঝা বোঝার জন্য সংযোগসমূহের বর্তমানের সাথে এই মানটি বিবেচনা করুন available
সংযোগগুলি । সার্ভারে তৈরি সমস্ত আগত সংযোগগুলির গণনা t এই সংখ্যাটিতে সেই সংযোগগুলি অন্তর্ভুক্ত রয়েছে যা থেকে বন্ধ হয়ে গেছে।
মোট সহ ক্লায়েন্টআইপি দ্বারা সংযোগ গণনা
আমরা মোট সংযোগ গণনা সহ আইপিএড্রেস দ্বারা সংযোগের সংখ্যা দেখতে এটি ব্যবহার করি। এটি একটি সমস্যা ডিবাগ করতে সত্যিই সহায়ক ছিল ... হিট সর্বাধিক সংযোগের আগে কেবল সেখানে পৌঁছান!
মঙ্গো শেলের জন্য:
db.currentOp(true).inprog.reduce((accumulator, connection) => { ipaddress = connection.client ? connection.client.split(":")[0] : "Internal"; accumulator[ipaddress] = (accumulator[ipaddress] || 0) + 1; accumulator["TOTAL_CONNECTION_COUNT"]++; return accumulator; }, { TOTAL_CONNECTION_COUNT: 0 })
ফর্ম্যাট করা:
db.currentOp(true).inprog.reduce(
(accumulator, connection) => {
ipaddress = connection.client ? connection.client.split(":")[0] : "Internal";
accumulator[ipaddress] = (accumulator[ipaddress] || 0) + 1;
accumulator["TOTAL_CONNECTION_COUNT"]++;
return accumulator;
},
{ TOTAL_CONNECTION_COUNT: 0 }
)
উদাহরণ ফেরত:
{
"TOTAL_CONNECTION_COUNT" : 331,
"192.168.253.72" : 8,
"192.168.254.42" : 17,
"127.0.0.1" : 3,
"192.168.248.66" : 2,
"11.178.12.244" : 2,
"Internal" : 41,
"3.100.12.33" : 86,
"11.148.23.34" : 168,
"81.127.34.11" : 1,
"84.147.25.17" : 3
}
(অ্যাটলাসের অভ্যন্তরীণ পর্যবেক্ষণে 192.xxx ঠিকানাগুলি)
"অভ্যন্তরীণ" হ'ল অভ্যন্তরীণ প্রক্রিয়া যার কোনও বাহ্যিক ক্লায়েন্ট নেই। আপনি এগুলির সাথে একটি তালিকা দেখতে পারেন:
db.currentOp(true).inprog.filter(connection => !connection.client).map(connection => connection.desc);
E QUERY [js] TypeError: db.currentOp(...).inprog is undefined :অ্যাডমিন ব্যবহারকারী ব্যবহার করে
db.currentOp(true)?
{ "ok" : 0, "errmsg" : "Using $all for currentOp is disallowed in this atlas tier", "code" : 8000, "codeName" : "AtlasError" }
db.serverStatus()কোনও সংযোগ খোলা এবং উপলভ্য দেয় কিন্তু কোন ক্লায়েন্টের সংযোগগুলি প্রদর্শন করে না। আরও তথ্যের জন্য আপনি এই আদেশটি ব্যবহার করতে পারেন 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)
এটি দেখায় যে আমার কাছে বর্তমানে আমার কম্পিউটারে মঙ্গোডিবি বন্দরে (27017) পাঁচটি সংযোগ খোলা রয়েছে। আমার ক্ষেত্রে আমি একটি স্কাল্ট্রা সার্ভার থেকে মঙ্গোডিবিতে সংযোগ করছি এবং আমি মঙ্গোডিবি ক্যাসবাহ ড্রাইভার ব্যবহার করছি তবে আপনি যে ক্লায়েন্ট ব্যবহার করবেন না তা নির্বিশেষে একই লসফ টিসিপি সংযোগ দেখতে পাবেন (যতক্ষণ না তারা টিসিপি / ব্যবহার করে সংযোগ করছেন) আইপি)।
sudo lsof -i | grep mongod
কমান্ডটি অনুসরণ করে মঙ্গো ডাটাবেসের জন্য সমস্ত সংযোগ দেখার চেষ্টা করেছি।
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
ওএস এক্স-এ, সরাসরি নেটওয়ার্ক ইন্টারফেসে সংযোগগুলি দেখুন, কেবল করুন :
$ 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যুক্তি ব্যবহার করুন ।
মোঙ্গোডিবি'র সিএলআই-তে সংযোগগুলি দেখতে, @ মিলনের উত্তর দেখুন ( যা আমি সবেমাত্র সম্পাদনা করেছি )।
আপনি শুধু ব্যবহার করতে পারেন
db.serverStatus().connections
এছাড়াও, এই ফাংশনটি আপনাকে আপনার মঙ্গো ডিবিতে সংযুক্ত আইপি ঠিকানাগুলি সনাক্ত করতে সহায়তা করতে পারে
db.currentOp(true).inprog.forEach(function(x) { print(x.client) })
এর সাথে সংযোগগুলি সম্পর্কে আরও কিছু বিশদ:
db.currentOp(true)
থেকে নেওয়া: https://jira.mongodb.org/browse/SERVER-5085
db.runCommand (conn "কানপুলস্ট্যাটস": 1})
{
"numClientConnections" : 0,
"numAScopedConnections" : 0,
"totalInUse" : 0,
"totalAvailable" : 0,
"totalCreated" : 0,
"hosts" : {
},
"replicaSets" : {
},
"ok" : 1
}
MongoMonitoringController : { "numClientConnections" : 0 , "numAScopedConnections" : 0 , "totalInUse" : 0 , "totalAvailable" : 0 , "totalCreated" : 0 , "totalRefreshing" : 0 , "pools" : { } , "hosts" : { } , "replicaSets" : { } , "ok" : 1.0}
দুঃখিত কারণ এটি একটি পুরাতন পোস্ট এবং বর্তমানে আগের তুলনায় আরও বিকল্প রয়েছে।
db.getSiblingDB("admin").aggregate( [
{ $currentOp: { allUsers: true, idleConnections: true, idleSessions: true } }
,{$project:{
"_id":0
,client:{$arrayElemAt:[ {$split:["$client",":"]}, 0 ] }
,curr_active:{$cond:[{$eq:["$active",true]},1,0]}
,curr_inactive:{$cond:[{$eq:["$active",false]},1,0]}
}
}
,{$match:{client:{$ne: null}}}
,{$group:{_id:"$client",curr_active:{$sum:"$curr_active"},curr_inactive:{$sum:"$curr_inactive"},total:{$sum:1}}}
,{$sort:{total:-1}}
] )
আউটপুট উদাহরণ:
{ "_id" : "xxx.xxx.xxx.78", "curr_active" : 0, "curr_inactive" : 1428, "total" : 1428 }
{ "_id" : "xxx.xxx.xxx.76", "curr_active" : 0, "curr_inactive" : 1428, "total" : 1428 }
{ "_id" : "xxx.xxx.xxx.73", "curr_active" : 0, "curr_inactive" : 1428, "total" : 1428 }
{ "_id" : "xxx.xxx.xxx.77", "curr_active" : 0, "curr_inactive" : 1428, "total" : 1428 }
{ "_id" : "xxx.xxx.xxx.74", "curr_active" : 0, "curr_inactive" : 1428, "total" : 1428 }
{ "_id" : "xxx.xxx.xxx.75", "curr_active" : 0, "curr_inactive" : 1428, "total" : 1428 }
{ "_id" : "xxx.xxx.xxx.58", "curr_active" : 0, "curr_inactive" : 510, "total" : 510 }
{ "_id" : "xxx.xxx.xxx.57", "curr_active" : 0, "curr_inactive" : 459, "total" : 459 }
{ "_id" : "xxx.xxx.xxx.55", "curr_active" : 0, "curr_inactive" : 459, "total" : 459 }
{ "_id" : "xxx.xxx.xxx.56", "curr_active" : 0, "curr_inactive" : 408, "total" : 408 }
{ "_id" : "xxx.xxx.xxx.47", "curr_active" : 1, "curr_inactive" : 11, "total" : 12 }
{ "_id" : "xxx.xxx.xxx.48", "curr_active" : 1, "curr_inactive" : 7, "total" : 8 }
{ "_id" : "xxx.xxx.xxx.51", "curr_active" : 0, "curr_inactive" : 8, "total" : 8 }
{ "_id" : "xxx.xxx.xxx.46", "curr_active" : 0, "curr_inactive" : 8, "total" : 8 }
{ "_id" : "xxx.xxx.xxx.52", "curr_active" : 0, "curr_inactive" : 6, "total" : 6 }
{ "_id" : "127.0.0.1", "curr_active" : 1, "curr_inactive" : 0, "total" : 1 }
{ "_id" : "xxx.xxx.xxx.3", "curr_active" : 0, "curr_inactive" : 1, "total" : 1 }
স্থানীয় সিস্টেম থেকে আপনার মঙ্গডব উদাহরণের সাথে সংযুক্ত করুন
এটি আপনাকে সমস্ত সংযুক্ত ক্লায়েন্ট এবং তাদের বিশদ জানাতে দেবে
db.currentOp (সত্য)
বিকল্পভাবে আপনি মোঙ্গো অ্যাটলাসে লগ ইন করে তারপরে আপনার ক্লাস্টারে নেভিগেট করে সংযোগের স্থিতি পরীক্ষা করতে পারেন ।