Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Phần sau đây sử dụng một phiên bản bộ bản sao làm ví dụ để mô tả cách truy vấn trạng thái kết nối và đặt số lượng kết nối trong nhóm kết nối

Truy vấn số lượng kết nối

Số lượng kết nối tối đa khác nhau tùy theo thông số kỹ thuật của phiên bản

Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Số lượng kết nối tối đa đề cập đến số lượng kết nối tối đa của mỗi nút trong một phiên bản

Thí dụ. Nếu một phiên bản bộ bản sao có hai vCPU và bộ nhớ 4 GB cho mỗi nút, thì số lượng kết nối tối đa của nút chính và nút phụ tương ứng là 1000. Nút ẩn không cung cấp dịch vụ do các đặc điểm kiến ​​trúc của nó

Sử dụng Mongo Shell để kết nối với nút chính và chạy db. máy chủStatus(). lệnh kết nối để truy vấn số lượng kết nối trên nút

replica:PRIMARY> db.serverStatus().connections
{ "current" : 7, "available" : 398, "totalCreated" : 818364 }

Chú ý đến các tham số sau và giá trị của chúng

  • hiện hành. kết nối hiện có
  • có sẵn. Số lượng kết nối có sẵn

Truy vấn nguồn kết nối

  1. Sử dụng Mongo Shell để kết nối với nút chính và chuyển sang cơ sở dữ liệu quản trị.
    replica:PRIMARY> use admin
  2. Chạy db. runCommand({currentOp. 1, $tất cả. true}) để truy vấn nguồn kết nối

    Bằng cách phân tích đầu ra lệnh, bạn có thể truy vấn địa chỉ IP nguồn của từng kết nối. Bằng cách này, số lượng kết nối giữa mỗi máy khách và phiên bản DDS DB sẽ thu được

    Hình 1 Đầu ra lệnh

    Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Giới hạn số lượng kết nối

DDS cho phép bạn đăng nhập vào cơ sở dữ liệu bằng URI chuỗi kết nối. Khi đăng nhập vào cơ sở dữ liệu bằng URI chuỗi kết nối, bạn có thể thêm &maxPoolSize=vào cuối URI để đặt số lượng kết nối trong nhóm kết nối

Thí dụ. Khi Mongo Shell được sử dụng để kết nối các phiên bản bộ bản sao, hãy chạy lệnh sau để đặt số lượng kết nối trong nhóm kết nối thành 10

mongo "mongodb. //rwuser. xxxxxxxxxxxx@192. 168. 168. 116. 8635,192. 168. 200. 147. 8635/test?authSource=admin&replicaSet=replica&maxPoolSize=10"

Hình 2 Giới hạn số lượng kết nối

Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Để biết chi tiết về cách giới hạn số lượng nhóm kết nối trên máy khách bằng các ngôn ngữ khác nhau, hãy xem tài liệu API của máy khách bằng các ngôn ngữ khác nhau trên trang web chính thức của MongoDB


Bạn có thể kiểm tra số lượng kết nối hiện tại tới MongoDB với sự trợ giúp của cú pháp sau –

var anyVariableName= db.serverStatus();
yourVariableName.connections;

Cú pháp thứ hai như sau -

db.serverStatus().connections;

Để hiểu cả hai cú pháp trên, chúng ta hãy xem từng cái một -

Trường hợp 1 - Truy vấn đầu tiên như sau -

> var checkCurrentNumberOfConnections = db.serverStatus()
> checkCurrentNumberOfConnections.connections;

Sau đây là đầu ra -

{ "current" : 1, "available" : 999999, "totalCreated" : 1 }

Trường hợp 2 - Truy vấn thứ hai như sau -

> db.serverStatus().connections

Sau đây là đầu ra -

{ "current" : 1, "available" : 999999, "totalCreated" : 1 }

Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Cập nhật ngày 30-Jul-2019 22. 30. 25

Khi Mongo Daemon được khởi động, nó sẽ bắt đầu lắng nghe các kết nối máy khách trên một cổng. Bất kỳ máy khách nào cũng có thể kết nối với Cơ sở dữ liệu MongoDB nếu chúng được kết nối trong mạng và có quyền truy cập vào cơ sở dữ liệu

Trong hướng dẫn này, chúng ta sẽ học cách tìm số lượng Kết nối MongoDB được thực hiện với Máy chủ MongoDB bằng phương pháp db.serverStatus()

db. serverStatus() cung cấp nhiều thông tin về MongoDB Server. Chúng tôi có thể nhận thông tin rõ ràng về số lượng kết nối được thực hiện với máy chủ bằng cách chạy lệnh db.serverStatus().connections từ bất kỳ MongoDB Shell nào được kết nối với Máy chủ

Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Sau đây là ảnh chụp nhanh lệnh chạy từ MongoDB Shell

Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Từ hình trên, bạn có thể quan sát thấy có ba kết nối “hiện tại” đến Máy chủ MongoDB. Các kết nối này có thể hoạt động hoặc không hoạt động. Ngoài ra, số lượng vị trí “có sẵn” cho các kết nối mới là 999997. Vì vậy, tổng cộng, Máy chủ MongoDB có thể hỗ trợ một triệu kết nối

Bây giờ chúng ta sẽ bắt đầu Mongo Shell kết nối với Máy chủ MongoDB và quan sát các giá trị

Làm cách nào tôi có thể thấy các kết nối đang hoạt động trong mongodb?

Với MongoDB Shell mới này tạo kết nối với Máy chủ MongoDB, số lượng kết nối đã tăng lên một và số lượng kết nối mở khả dụng giảm đi 1

Làm cách nào bạn có thể thấy các kết nối được sử dụng bởi MongoDB?

Lệnh connPoolStats trả về thông tin liên quan đến các kết nối gửi đi đang mở từ phiên bản cơ sở dữ liệu hiện tại đến các thành viên khác của cụm bản sao hoặc cụm bản sao bị phân mảnh. Để chạy connPoolStats , hãy sử dụng db. phương thức runCommand( {

MongoDB có thể xử lý bao nhiêu kết nối?

Cụm M2 của bạn có ba nút với giới hạn 500 kết nối trên mỗi nút. Atlas dự trữ 10 kết nối trên mỗi nút. Nếu bạn đặt tùy chọn đọc của mình thành phụ, Atlas có thể đọc từ hai nút phụ cho giới hạn kết nối 980 kết hợp .

Các kết nối nhàn rỗi trong MongoDB ở đâu?

Các kết nối trong MongoDB không bị ràng buộc với một không gian tên cụ thể (cơ sở dữ liệu và/hoặc bộ sưu tập). Mặc dù không có lệnh riêng biệt nào cho phép người vận hành liệt kê tất cả các kết nối máy khách được thiết lập cho một phiên bản MongoDB cụ thể, nhưng bạn có thể sử dụng db. lệnh currentOp() cho mục đích đó.