Hướng dẫn mongodb sector - lĩnh vực mongodb

Trên trang này

Show
  • Hỗ trợ nền tảng
  • Ghi chú hỗ trợ nền tảng
  • Ma trận hỗ trợ nền tảng
  • MongoDB

    sudo sysctl -w vm.zone_reclaim_mode=0

    6
  • Đồng thời
  • Tính nhất quán dữ liệu
  • Kết nối mạng
  • Cân nhắc phần cứng
  • Ngành kiến ​​​​trúc
  • Nén
  • Đồng bộ đồng hồ
  • Cân nhắc cụ thể của nền tảng
  • Giám sát hiệu suất
  • Sao lưu

Trang này chi tiết các cấu hình hệ thống ảnh hưởng đến MongoDB, đặc biệt là khi chạy trong sản xuất.

Cảnh báo

MMAPV1 bị loại bỏ

Ghi chú

Để chạy trong sản xuất, hãy tham khảo các nền tảng được đề xuất cho các khuyến nghị hệ điều hành.in production, refer to the Recommended Platforms for operating system recommendations.

Ghi chú

Để chạy trong sản xuất, hãy tham khảo các nền tảng được đề xuất cho các khuyến nghị hệ điều hành.

MongoDB 4.0 có thể mất dữ liệu trong quá trình tắt máy trên MacOS 10.12.x, 10.13.x và 10.14.0. Vấn đề này đã được Apple khắc phục trong MacOS 10.14.1.WT-4018.

Để biết chi tiết, xem WT-4018.

  • MongoDB yêu cầu các kiến ​​trúc vi mô

    sudo sysctl -w vm.zone_reclaim_mode=0

    7 tối thiểu sau đây: [3]

    • Đối với Intel

      sudo sysctl -w vm.zone_reclaim_mode=0

      7, MongoDB yêu cầu một trong số:

    • một cây cầu cát hoặc bộ xử lý lõi sau này, hoặc

  • một hồ hổ hoặc sau đó là celeron hoặc bộ xử lý pentium.

    • Đối với AMD

      sudo sysctl -w vm.zone_reclaim_mode=0

      7, MongoDB yêu cầu:

một máy ủi hoặc bộ xử lý sau này.

  • Bắt đầu từ MongoDB 5.0,

    ps --no-headers -o comm 1

    0,

    ps --no-headers -o comm 1

    1 và Shell Legacy

    ps --no-headers -o comm 1

    2 không còn hỗ trợ các nền tảng

    sudo sysctl -w vm.zone_reclaim_mode=0

    7 không đáp ứng yêu cầu kiến ​​trúc vi mô tối thiểu này.not support the Unbreakable Enterprise Kernel (UEK).

  • MongoDB chỉ hỗ trợ Oracle Linux chạy hạt nhân tương thích Red Hat (RHCK). MongoDB không hỗ trợ nhân doanh nghiệp không thể phá vỡ (UEK).select Intel and AMD processors.

MongoDB 5.0 yêu cầu sử dụng bộ hướng dẫn AVX, có sẵn trên các bộ xử lý Intel và AMD chọn.

MongoDB trên

ps --no-headers -o comm 1

4 yêu cầu vi mô Armv8.2-A hoặc sau đó.

Bắt đầu từ MongoDB 5.0, ps --no-headers -o comm 10, ps --no-headers -o comm 11 và Shell Legacy ps --no-headers -o comm 12 không còn hỗ trợ các nền tảng ps --no-headers -o comm 14 không đáp ứng yêu cầu kiến ​​trúc vi mô tối thiểu này.

Quan trọng

v4.0 kết thúc cuộc đời

v4.0 đã kết thúc cuộc đời vào ngày 30 tháng 4 năm 2022 và không còn được MongoDB hỗ trợ chính thức.

Ngành kiến ​​​​trúc

Nén

6.0

5.0

4.4

4.2

4.0

Đồng bộ đồng hồ

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Đồng bộ đồng hồ

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

5.0.8+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

5.0.8+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.2.1+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.2.1+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.2.1+

4.0.14+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.2.1+

4.0.14+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.2.1+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.2.1+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.0.1+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.0.1+

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

x86_64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

4.4.4+

4.2.13+

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

4.4.4+

4.2.13+

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

4.4.4+

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

4.4.4+

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

arm64

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

ppc64le

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

4.2.7+

Sao lưu

ppc64le

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

ppc64le

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

Giám sát hiệu suất

ppc64le

Cân nhắc cụ thể của nền tảng

Sao lưu

ppc64le

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

Sao lưu

ppc64le

Cân nhắc cụ thể của nền tảng

Sao lưu

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

5.0.9+

Sao lưu

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

Trang này chi tiết các cấu hình hệ thống ảnh hưởng đến MongoDB, đặc biệt là khi chạy trong sản xuất.

Giám sát hiệu suất

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Giám sát hiệu suất

Sao lưu

Trang này chi tiết các cấu hình hệ thống ảnh hưởng đến MongoDB, đặc biệt là khi chạy trong sản xuất.

Cảnh báo

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

Cảnh báo

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

Trang này chi tiết các cấu hình hệ thống ảnh hưởng đến MongoDB, đặc biệt là khi chạy trong sản xuất.

Sao lưu

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

Trang này chi tiết các cấu hình hệ thống ảnh hưởng đến MongoDB, đặc biệt là khi chạy trong sản xuất.

Sao lưu

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

Trang này chi tiết các cấu hình hệ thống ảnh hưởng đến MongoDB, đặc biệt là khi chạy trong sản xuất.

Sao lưu

s390x

Cân nhắc cụ thể của nền tảng

Giám sát hiệu suất

Sao lưu

Trang này chi tiết các cấu hình hệ thống ảnh hưởng đến MongoDB, đặc biệt là khi chạy trong sản xuất.

Mặc dù MongoDB hỗ trợ nhiều nền tảng khác nhau, các hệ điều hành sau đây được khuyến nghị sử dụng sản xuất trên kiến ​​trúc

sudo sysctl -w vm.zone_reclaim_mode=0

7:

  • Amazon Linux 2

  • Debian 10

  • Rhel / Centos 7 và 8 [4] / CentOS 7 and 8 [4]

  • Sles 12 và 15

  • Ubuntu LTS 18.04 và 20.04

  • Windows Server 2016 và 2019

Mẹo

Xem thêm:

Hãy chắc chắn rằng bạn có bản phát hành ổn định mới nhất.

Tất cả các bản phát hành MongoDB đều có sẵn trên trang Trung tâm tải xuống MongoDB. Trung tâm tải xuống MongoDB là một nơi tốt để xác minh bản phát hành ổn định hiện tại, ngay cả khi bạn đang cài đặt thông qua trình quản lý gói.MongoDB Download Center page. The MongoDB Download Center is a good place to verify the current stable release, even if you are installing via a package manager.

Đối với các sản phẩm MongoDB khác, hãy tham khảo trang Trung tâm tải xuống MongoDB hoặc tài liệu tương ứng của họ.MongoDB Download Center page or their respective documentation.

Các tệp trong thư mục

sudo sysctl -w vm.zone_reclaim_mode=0

6 phải tương ứng với công cụ lưu trữ được cấu hình.

ps --no-headers -o comm 1

0 sẽ không bắt đầu nếu

sudo sysctl -w vm.zone_reclaim_mode=0

6 chứa các tệp dữ liệu được tạo bởi một công cụ lưu trữ khác với tệp được chỉ định bởi

sudo apt-get install libc6

3

ps --no-headers -o comm 1

0 phải có quyền đọc và ghi cho

sudo sysctl -w vm.zone_reclaim_mode=0

6 được chỉ định

Wiredtiger hỗ trợ quyền truy cập đồng thời của độc giả và nhà văn vào các tài liệu trong một bộ sưu tập. Khách hàng có thể đọc tài liệu trong khi các hoạt động ghi đang được tiến hành và nhiều luồng có thể sửa đổi các tài liệu khác nhau trong một bộ sưu tập cùng một lúc.

Mẹo

Xem thêm:

Hãy chắc chắn rằng bạn có bản phát hành ổn định mới nhất. provides information about how WiredTiger takes advantage of multiple CPU cores and how to improve operation throughput.

Tất cả các bản phát hành MongoDB đều có sẵn trên trang Trung tâm tải xuống MongoDB. Trung tâm tải xuống MongoDB là một nơi tốt để xác minh bản phát hành ổn định hiện tại, ngay cả khi bạn đang cài đặt thông qua trình quản lý gói.

Đối với các sản phẩm MongoDB khác, hãy tham khảo trang Trung tâm tải xuống MongoDB hoặc tài liệu tương ứng của họ.

Các tệp trong thư mục

sudo sysctl -w vm.zone_reclaim_mode=0

6 phải tương ứng với công cụ lưu trữ được cấu hình.

ps --no-headers -o comm 1

0 sẽ không bắt đầu nếu

sudo sysctl -w vm.zone_reclaim_mode=0

6 chứa các tệp dữ liệu được tạo bởi một công cụ lưu trữ khác với tệp được chỉ định bởi

sudo apt-get install libc6

3

ps --no-headers -o comm 1

0 phải có quyền đọc và ghi cho

sudo sysctl -w vm.zone_reclaim_mode=0

6 được chỉ định

Wiredtiger hỗ trợ quyền truy cập đồng thời của độc giả và nhà văn vào các tài liệu trong một bộ sưu tập. Khách hàng có thể đọc tài liệu trong khi các hoạt động ghi đang được tiến hành và nhiều luồng có thể sửa đổi các tài liệu khác nhau trong một bộ sưu tập cùng một lúc.

Phân bổ đủ RAM và CPU cung cấp thông tin về cách WiredTiger tận dụng nhiều lõi CPU và cách cải thiện thông lượng hoạt động.

MongoDB sử dụng viết trước khi đăng nhập vào một tạp chí trên đĩa. Nhật ký đảm bảo rằng MongoDB có thể nhanh chóng khôi phục các hoạt động viết được ghi vào tạp chí nhưng không được ghi vào các tệp dữ liệu trong trường hợp

ps --no-headers -o comm 1

0 bị chấm dứt do sự cố hoặc thất bại nghiêm trọng khác.

Để lại nhật ký được bật để đảm bảo rằng

ps --no-headers -o comm 1

0 sẽ có thể khôi phục các tệp dữ liệu của mình và giữ các tệp dữ liệu ở trạng thái hợp lệ sau khi gặp sự cố. Xem nhật ký để biết thêm thông tin.

Bắt đầu từ MongoDB 4.0, bạn không thể chỉ định tùy chọn sudo apt-get install libc68 hoặc sudo apt-get install libc69 cho các thành viên bộ bản sao sử dụng công cụ lưu trữ Wiredtiger.

Bắt đầu từ MongoDB 3.6, bạn có thể sử dụng các phiên phù hợp nhân quả để đọc các bài viết của riêng bạn, nếu xác nhận yêu cầu viết.

  • Trước MongoDB 3.6, để đọc bài viết của riêng bạn, bạn phải phát hành hoạt động viết của mình bằng

    cat /proc/sys/vm/swappiness

    0 Viết mối quan tâm, sau đó đưa ra hoạt động đọc của bạn với

    cat /proc/sys/vm/swappiness

    1 Mở thích đọc và

    cat /proc/sys/vm/swappiness

    2 hoặc

    cat /proc/sys/vm/swappiness

    3 Đọc mối quan tâm.

  • Viết mối quan tâm mô tả mức độ xác nhận được yêu cầu từ MongoDB cho các hoạt động viết. Mức độ của các mối quan tâm ghi ảnh hưởng đến việc hoạt động viết trở lại nhanh như thế nào. Khi các hoạt động viết có một mối quan tâm viết yếu, họ trở lại nhanh chóng. Với mối quan tâm viết mạnh hơn, khách hàng phải đợi sau khi gửi hoạt động viết cho đến khi MongoDB xác nhận hoạt động ghi ở cấp độ ghi được yêu cầu. Với các mối quan tâm ghi không đủ, các hoạt động ghi có thể xuất hiện cho khách hàng đã thành công, nhưng có thể không tồn tại trong một số trường hợp lỗi máy chủ.

Xem tài liệu viết mối quan tâm để biết thêm thông tin về việc chọn một mức độ ghi quan tâm thích hợp cho việc triển khai của bạn.Windows Server Technet Article on TCP Configuration when deploying MongoDB on Windows.

Luôn chạy MongoDB trong một môi trường đáng tin cậy, với các quy tắc mạng ngăn chặn quyền truy cập từ tất cả các máy, hệ thống và mạng không xác định. Như với bất kỳ hệ thống nhạy cảm nào phụ thuộc vào truy cập mạng, việc triển khai MongoDB của bạn chỉ có thể truy cập được vào các hệ thống cụ thể yêu cầu truy cập, chẳng hạn như máy chủ ứng dụng, dịch vụ giám sát và các thành phần MongoDB khác.

Quan trọng

Để biết thêm thông tin và cân nhắc về bảo mật, hãy tham khảo các tài liệu trong phần bảo mật, cụ thể:

Danh sách kiểm tra bảo mật

Mạng và cấu hình làm cứngAllocate Sufficient RAM and CPU.

MongoDB được thiết kế đặc biệt với phần cứng hàng hóa trong tâm trí và có một vài yêu cầu hoặc giới hạn phần cứng. Các thành phần cốt lõi của MongoDB chạy trên phần cứng Little-Endian, chủ yếu là bộ xử lý X86/x86_64. Thư viện khách (tức là trình điều khiển) có thể chạy trên các hệ thống endian lớn hoặc nhỏ.

Tối thiểu, đảm bảo rằng mỗi trường hợp

ps --no-headers -o comm 1

0 hoặc

ps --no-headers -o comm 1

1 có quyền truy cập vào hai lõi thực hoặc một CPU vật lý đa lõi.

Công cụ lưu trữ Wiredtiger được đa luồng và có thể tận dụng các lõi CPU bổ sung. Cụ thể, tổng số luồng hoạt động (nghĩa là các hoạt động đồng thời) liên quan đến số lượng CPU có thể có thể ảnh hưởng đến hiệu suất:

  • Thông lượng tăng khi số lượng hoạt động hoạt động đồng thời tăng lên đến số CPU.

  • Thông lượng giảm khi số lượng hoạt động hoạt động đồng thời vượt quá số lượng CPU theo một số ngưỡng.

Ngưỡng phụ thuộc vào ứng dụng của bạn. Bạn có thể xác định số lượng hoạt động hoạt động đồng thời tối ưu cho ứng dụng của bạn bằng cách thử nghiệm và đo thông lượng đo. Đầu ra từ

/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
1 cung cấp số liệu thống kê về số lượng lần đọc/ghi hoạt động trong cột (
/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
2).
/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
1
provides statistics on the number of active reads/writes in the (
/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
2) column.

Với WiredTiger, MongoDB sử dụng cả bộ đệm bên trong WiredTiger và bộ đệm hệ thống tập tin.

Bắt đầu từ MongoDB 3.4, kích thước bộ nhớ cache bên trong WiredTiger mặc định là lớn hơn cả:

  • 50% (RAM - 1 GB) hoặc

  • 256 MB.

Ví dụ, trên một hệ thống có tổng số RAM 4GB, bộ đệm Wiredtiger sẽ sử dụng 1,5GB RAM (

/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
3). Ngược lại, một hệ thống có tổng số 1,25 GB RAM sẽ phân bổ 256 MB cho bộ đệm Wiredtiger vì đó là hơn một nửa tổng số RAM trừ đi một gigabyte (
/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
4).

Ghi chú

Trong một số trường hợp, chẳng hạn như khi chạy trong một thùng chứa, cơ sở dữ liệu có thể có các ràng buộc bộ nhớ thấp hơn tổng bộ nhớ hệ thống. Trong các trường hợp như vậy, giới hạn bộ nhớ này, thay vì tổng bộ nhớ hệ thống, được sử dụng làm RAM tối đa có sẵn.

Để xem giới hạn bộ nhớ, xem

/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
5

Theo mặc định, WiredTiger sử dụng nén khối Snappy cho tất cả các bộ sưu tập và nén tiền tố cho tất cả các chỉ mục. Mặc định nén có thể định cấu hình ở cấp độ toàn cầu và cũng có thể được đặt trên cơ sở mỗi lần thu thập và chỉ số trong quá trình tạo và tạo chỉ số.

Các biểu diễn khác nhau được sử dụng cho dữ liệu trong bộ đệm nội bộ WiredTiger so với định dạng trên đĩa:

  • Dữ liệu trong bộ đệm hệ thống tập tin giống như định dạng trên đĩa, bao gồm các lợi ích của bất kỳ nén nào cho các tệp dữ liệu. Bộ đệm hệ thống tập tin được sử dụng bởi hệ điều hành để giảm I/O đĩa.

  • Các chỉ mục được tải trong bộ đệm bên trong Wiredtiger có biểu diễn dữ liệu khác với định dạng trên đĩa, nhưng vẫn có thể tận dụng sự nén tiền tố chỉ mục để giảm sử dụng RAM. Chỉ số Tiền tố nén phân phối các tiền tố phổ biến từ các trường được lập chỉ mục.

  • Dữ liệu thu thập trong bộ đệm nội bộ Wiredtiger không bị nén và sử dụng một biểu diễn khác với định dạng trên đĩa. Nén khối có thể cung cấp tiết kiệm lưu trữ trên đĩa đáng kể, nhưng dữ liệu phải không bị nén để bị máy chủ thao túng.

Thông qua bộ đệm hệ thống tập tin, MongoDB tự động sử dụng tất cả bộ nhớ miễn phí không được sử dụng bởi bộ đệm WiredTiger hoặc bởi các quy trình khác.

Để điều chỉnh kích thước của bộ đệm nội bộ Wiredtiger, xem

/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
6 và
/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
7. Tránh tăng kích thước bộ đệm bên trong WiredTiger trên giá trị mặc định của nó.

Ghi chú

Trong một số trường hợp, chẳng hạn như khi chạy trong một thùng chứa, cơ sở dữ liệu có thể có các ràng buộc bộ nhớ thấp hơn tổng bộ nhớ hệ thống. Trong các trường hợp như vậy, giới hạn bộ nhớ này, thay vì tổng bộ nhớ hệ thống, được sử dụng làm RAM tối đa có sẵn.

Để xem giới hạn bộ nhớ, xem

/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)
5

Theo mặc định, WiredTiger sử dụng nén khối Snappy cho tất cả các bộ sưu tập và nén tiền tố cho tất cả các chỉ mục. Mặc định nén có thể định cấu hình ở cấp độ toàn cầu và cũng có thể được đặt trên cơ sở mỗi lần thu thập và chỉ số trong quá trình tạo và tạo chỉ số.

Các biểu diễn khác nhau được sử dụng cho dữ liệu trong bộ đệm nội bộ WiredTiger so với định dạng trên đĩa:

Dữ liệu trong bộ đệm hệ thống tập tin giống như định dạng trên đĩa, bao gồm các lợi ích của bất kỳ nén nào cho các tệp dữ liệu. Bộ đệm hệ thống tập tin được sử dụng bởi hệ điều hành để giảm I/O đĩa.

Các chỉ mục được tải trong bộ đệm bên trong Wiredtiger có biểu diễn dữ liệu khác với định dạng trên đĩa, nhưng vẫn có thể tận dụng sự nén tiền tố chỉ mục để giảm sử dụng RAM. Chỉ số Tiền tố nén phân phối các tiền tố phổ biến từ các trường được lập chỉ mục.

Mẹo

Xem thêm:

MongoDB có kết quả tốt và tỷ lệ hiệu suất giá tốt với SSD SATA (đĩa trạng thái rắn).

Sử dụng SSD nếu có sẵn và kinh tế.

Các ổ đĩa quay hàng hóa (SATA) thường là một lựa chọn tốt, vì hiệu suất I/O ngẫu nhiên tăng với các ổ đĩa quay đắt hơn không phải là kịch tính (chỉ theo thứ tự 2x). Sử dụng SSD hoặc tăng RAM có thể hiệu quả hơn trong việc tăng thông lượng I/O.

Chạy MongoDB trên một hệ thống có truy cập bộ nhớ không đồng nhất (NUMA) có thể gây ra một số vấn đề hoạt động, bao gồm hiệu suất chậm trong thời gian sử dụng quy trình hệ thống và thời gian cao.

Khi chạy các máy chủ và máy khách MongoDB trên phần cứng NUMA, bạn nên định cấu hình chính sách xen kẽ bộ nhớ để máy chủ hoạt động theo kiểu phi NUMA. MongoDB kiểm tra cài đặt NUMA khi khởi động khi được triển khai trên các máy Linux (kể từ phiên bản 2.0) và Windows (kể từ phiên bản 2.6). Nếu cấu hình NUMA có thể làm giảm hiệu suất, MongoDB sẽ in cảnh báo.

Mẹo

Xem thêm:

  • MongoDB có kết quả tốt và tỷ lệ hiệu suất giá tốt với SSD SATA (đĩa trạng thái rắn). post, which describes the effects of NUMA on databases. The post introduces NUMA and its goals, and illustrates how these goals are not compatible with production databases. Although the blog post addresses the impact of NUMA for MySQL, the issues for MongoDB are similar.

  • Sử dụng SSD nếu có sẵn và kinh tế..

Các ổ đĩa quay hàng hóa (SATA) thường là một lựa chọn tốt, vì hiệu suất I/O ngẫu nhiên tăng với các ổ đĩa quay đắt hơn không phải là kịch tính (chỉ theo thứ tự 2x). Sử dụng SSD hoặc tăng RAM có thể hiệu quả hơn trong việc tăng thông lượng I/O.

Chạy MongoDB trên một hệ thống có truy cập bộ nhớ không đồng nhất (NUMA) có thể gây ra một số vấn đề hoạt động, bao gồm hiệu suất chậm trong thời gian sử dụng quy trình hệ thống và thời gian cao.

  1. Khi chạy các máy chủ và máy khách MongoDB trên phần cứng NUMA, bạn nên định cấu hình chính sách xen kẽ bộ nhớ để máy chủ hoạt động theo kiểu phi NUMA. MongoDB kiểm tra cài đặt NUMA khi khởi động khi được triển khai trên các máy Linux (kể từ phiên bản 2.0) và Windows (kể từ phiên bản 2.6). Nếu cấu hình NUMA có thể làm giảm hiệu suất, MongoDB sẽ in cảnh báo.

    echo 0 | sudo tee /proc/sys/vm/zone_reclaim_mode

    sudo sysctl -w vm.zone_reclaim_mode=0

  2. Vấn đề "sự điên rồ hoán đổi" của MySQL và ảnh hưởng của Numa Post, mô tả các tác động của NUMA đối với cơ sở dữ liệu. Bài đăng giới thiệu Numa và các mục tiêu của nó, và minh họa cách các mục tiêu này không tương thích với cơ sở dữ liệu sản xuất. Mặc dù bài đăng trên blog đề cập đến tác động của NUMA đối với MySQL, nhưng các vấn đề đối với MongoDB là tương tự nhau.

    ps --no-headers -o comm 1

    • NUMA: Tổng quan.systemd init system, and you must follow the steps in the systemd tab below to edit your MongoDB service file(s).

    • Trên Windows, bộ nhớ xen kẽ phải được bật thông qua BIOS của máy. Tham khảo tài liệu hệ thống của bạn để biết chi tiết.

    • Trên Linux, bạn phải vô hiệu hóa việc thu hồi vùng và cũng đảm bảo rằng các trường hợp

      ps --no-headers -o comm 1

      0 và

      ps --no-headers -o comm 1

      1 của bạn được bắt đầu bởi
      0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write
      0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
      0, thường được cấu hình thông qua hệ thống init của nền tảng của bạn. Bạn phải thực hiện cả hai hoạt động này để vô hiệu hóa Numa đúng cách để sử dụng với MongoDB.Custom init scripts tab below to edit your custom init script(s).

Vô hiệu hóa việc đòi lại vùng bằng một trong các lệnh sau:Documentation for /proc/sys/vm/*.

Đảm bảo rằng

ps --no-headers -o comm 1

0 và

ps --no-headers -o comm 1

1 được bắt đầu bởi
0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write
0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
0. Điều này thường được cấu hình thông qua hệ thống init của nền tảng của bạn. Chạy lệnh sau để xác định hệ thống init nào được sử dụng trên nền tảng của bạn:

Nếu "

0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write
0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
4", nền tảng của bạn sử dụng hệ thống systemd init và bạn phải làm theo các bước trong tab SystemD bên dưới để chỉnh sửa (các) tệp dịch vụ MongoDB của bạn.

  1. Nếu "

    0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write
    0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
    5", nền tảng của bạn sử dụng hệ thống sysv init và bạn không cần phải thực hiện bước này. Tập lệnh InitoDB init mặc định cho sysv init bao gồm các bước cần thiết để bắt đầu các phiên bản MongoDB thông qua
    0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write
    0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
    0 theo mặc định.

  2. Nếu bạn quản lý các tập lệnh init của riêng mình (tức là bạn không sử dụng một trong hai hệ thống init này), bạn phải làm theo các bước trong tab tập lệnh init tùy chỉnh bên dưới để chỉnh sửa (các) tập lệnh init tùy chỉnh của bạn.

Để biết thêm thông tin, hãy xem Tài liệu cho/Proc/Sys/VM/*.Set vm.swappiness for instructions on configuring swap on your Linux system following these guidelines.

MongoDB thực hiện tốt nhất nơi có thể tránh được sự hoán đổi hoặc giữ ở mức tối thiểu, vì việc truy xuất dữ liệu từ hoán đổi sẽ luôn chậm hơn so với truy cập dữ liệu trong RAM. Tuy nhiên, nếu hệ thống lưu trữ MongoDB hết RAM, hoán đổi có thể ngăn chặn kẻ giết người Linux kết thúc quá trình ps --no-headers -o comm 10.

Nói chung, bạn nên chọn một trong các chiến lược hoán đổi sau:

Chỉ định không gian hoán đổi trên hệ thống của bạn và định cấu hình kernel chỉ cho phép hoán đổi dưới tải bộ nhớ cao hoặc

Không chỉ định không gian hoán đổi trên hệ thống của bạn và định cấu hình kernel để vô hiệu hóa hoán đổi hoàn toàn

Xem Đặt VM.Swappiness để biết hướng dẫn về việc định cấu hình hoán đổi trên hệ thống Linux của bạn theo các hướng dẫn này.

  • Ghi chú

  • objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    0

  • objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    1

  • objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    2

  • objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    3

Nếu phiên bản MongoDB của bạn được lưu trữ trên một hệ thống cũng chạy phần mềm khác, chẳng hạn như máy chủ web, bạn nên chọn chiến lược hoán đổi đầu tiên. Không vô hiệu hóa hoán đổi trong trường hợp này. Nếu có thể, bạn rất khuyến khích bạn chạy MongoDB trên hệ thống chuyên dụng của chính nó.

Để có hiệu suất tối ưu về lớp lưu trữ, sử dụng các đĩa được hỗ trợ bởi RAID-10. RAID-5 và RAID-6 thường không cung cấp đủ hiệu suất để hỗ trợ triển khai MongoDB.

Đối với công cụ lưu trữ Wiredtiger, bạn cũng có thể lưu trữ các chỉ mục trên một thiết bị lưu trữ khác. Xem

objdump -T /libssl.so.1*
objdump -T /libcrypto.so.1*
4

Ghi chú

Sử dụng các thiết bị lưu trữ khác nhau sẽ ảnh hưởng đến khả năng của bạn để tạo các bản sao lưu theo kiểu nhanh dữ liệu của bạn, vì các tệp sẽ nằm trên các thiết bị và khối lượng khác nhau.

Đối với các thiết bị khối cục bộ được gắn vào thể hiện máy ảo thông qua trình ảo hóa hoặc được lưu trữ bởi nhà cung cấp dịch vụ lưu trữ đám mây, hệ điều hành khách nên sử dụng bộ lập lịch NOOP để có hiệu suất tốt nhất. Bộ lập lịch NOOP cho phép hệ điều hành trì hoãn lịch trình I/O đến trình ảo hóa cơ bản.

Đối với các máy chủ vật lý, hệ điều hành nên sử dụng bộ lập lịch thời hạn. Bộ lập lịch thời hạn giới hạn độ trễ tối đa cho mỗi yêu cầu và duy trì thông lượng đĩa tốt tốt nhất cho các ứng dụng cơ sở dữ liệu chuyên sâu về đĩa.

Xem tài liệu Kiến trúc Bộ Bản sao để biết tổng quan về các cân nhắc kiến ​​trúc để triển khai Set Replica.

Xem Kiến trúc sản xuất cụm Sharded để biết tổng quan về kiến ​​trúc cụm được đề xuất để triển khai sản xuất.

Mẹo

Xem thêm:

Wiredtiger có thể nén dữ liệu thu thập bằng một trong các thư viện nén sau:

  • SnappyProwative tỷ lệ nén thấp hơn so với
    objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    5 hoặc
    objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    6 nhưng có chi phí CPU thấp hơn so với cả hai.
  • ZlibProvides Tốc độ nén tốt hơn so với
    objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    7 nhưng có chi phí CPU cao hơn cả
    objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    7 và
    objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    6.
  • ZSTD (có sẵn bắt đầu từ MongoDB 4.2) cung cấp tốc độ nén tốt hơn cả
    objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    7 và
    objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    5 và có chi phí CPU thấp hơn so với
    objdump -T /libssl.so.1*
    objdump -T /libcrypto.so.1*
    5.

Theo mặc định, Wiredtiger sử dụng thư viện nén Snappy. Để thay đổi cài đặt nén, xem

sysctl net.ipv4.tcp_keepalive_time

3

Wiredtiger sử dụng nén tiền tố trên tất cả các chỉ mục theo mặc định.

Các thành phần MongoDB giữ đồng hồ logic để hỗ trợ các hoạt động phụ thuộc vào thời gian. Sử dụng NTP để đồng bộ hóa đồng hồ máy chủ giảm thiểu nguy cơ trôi dạt đồng hồ giữa các thành phần. Sự trôi dạt giữa đồng hồ giữa các thành phần làm tăng khả năng hành vi không chính xác hoặc bất thường của các hoạt động phụ thuộc vào thời gian như sau:NTP to synchronize host machine clocks mitigates the risk of clock drift between components. Clock drift between components increases the likelihood of incorrect or abnormal behavior of time-dependent operations like the following:

  • Nếu đồng hồ hệ thống cơ bản của bất kỳ thành phần MongoDB nào đã trôi đi một năm hoặc nhiều hơn từ các thành phần khác trong cùng một triển khai, giao tiếp giữa các thành viên đó có thể trở nên không đáng tin cậy hoặc dừng lại hoàn toàn.

    Tham số

    sysctl net.ipv4.tcp_keepalive_time

    4 kiểm soát lượng trôi dạt đồng hồ chấp nhận được giữa các thành phần. Các cụm có giá trị thấp hơn

    sysctl net.ipv4.tcp_keepalive_time

    4 có dung sai thấp hơn tương ứng cho sự trôi dạt của đồng hồ.

  • Hai thành viên cụm có đồng hồ hệ thống khác nhau có thể trả về các giá trị khác nhau cho các hoạt động trả về thời gian cụm hoặc hệ thống hiện tại, chẳng hạn như

    sysctl net.ipv4.tcp_keepalive_time

    6,

    sysctl net.ipv4.tcp_keepalive_time

    7 và

    sysctl net.ipv4.tcp_keepalive_time

    8

  • Các tính năng dựa vào thời gian có thể có hành vi không nhất quán hoặc không thể đoán trước trong các cụm có độ trôi đồng hồ giữa các thành phần MongoDB.

Đồng bộ hóa NTP là cần thiết cho các triển khai chạy MongoDB thấp hơn

sysctl net.ipv4.tcp_keepalive_time

9 hoặc

sudo sysctl -w vm.zone_reclaim_mode=0

00 với động cơ lưu trữ hổ có dây, trong đó trôi dạt đồng hồ có thể dẫn đến treo điểm kiểm tra. Vấn đề đã được khắc phục trong MongoDB 3.4.6+ và MongoDB 3.2.17+, và được giải quyết trong tất cả các điểm phát hành của MongoDB 3.6, 4.0, 4.2 và các bản phát hành sau đó.checkpoint hangs. The issue was fixed in MongoDB 3.4.6+ and MongoDB 3.2.17+, and is resolved in all point release of MongoDB 3.6, 4.0, 4.2, and later releases.

Khi chạy MongoDB trong sản xuất trên Linux, bạn nên sử dụng Linux Kernel phiên bản 2.6.36 trở lên, với hệ thống tập tin XFS hoặc EXT4. Nếu có thể, hãy sử dụng XFS vì nó thường hoạt động tốt hơn với MongoDB.

Với công cụ lưu trữ WiredTiger, sử dụng XFS được khuyến nghị mạnh mẽ cho các nút chịu dữ liệu để tránh các vấn đề về hiệu suất có thể xảy ra khi sử dụng Ext4 với WiredTiger.strongly recommended for data bearing nodes to avoid performance issues that may occur when using EXT4 with WiredTiger.

  • Nói chung, nếu bạn sử dụng hệ thống tệp XFS, hãy sử dụng ít nhất phiên bản

    sudo sysctl -w vm.zone_reclaim_mode=0

    01 của hạt nhân Linux.

  • Nếu bạn sử dụng hệ thống tệp EXT4, hãy sử dụng ít nhất phiên bản

    sudo sysctl -w vm.zone_reclaim_mode=0

    02 của hạt nhân Linux.

  • Trên Red Hat Enterprise Linux và Centos, sử dụng ít nhất phiên bản

    sudo sysctl -w vm.zone_reclaim_mode=0

    03 của hạt nhân Linux.

MongoDB sử dụng Thư viện GNU C (GLIBC) trên Linux. Nói chung, mỗi bản phân phối Linux cung cấp phiên bản được kiểm tra riêng của thư viện này. Để có kết quả tốt nhất, hãy sử dụng bản cập nhật mới nhất có sẵn cho phiên bản cung cấp hệ thống này. Bạn có thể kiểm tra xem bạn đã cài đặt phiên bản mới nhất bằng cách sử dụng trình quản lý gói của hệ thống. Ví dụ:GNU C Library (glibc) on Linux. Generally, each Linux distro provides its own vetted version of this library. For best results, use the latest update available for this system-provided version. You can check whether you have the latest version installed by using your system's package manager. For example:

  • Trên RHEL / CentOS, lệnh sau đây cập nhật thư viện GNU C do hệ thống cung cấp:RHEL / CentOS, the following command updates the system-provided GNU C Library:

  • Trên Ubuntu / Debian, lệnh sau đây cập nhật thư viện GNU C do hệ thống cung cấp:

    sudo apt-get install libc6

Quan trọng

MongoDB yêu cầu một hệ thống tập tin hỗ trợ

sudo sysctl -w vm.zone_reclaim_mode=0

04 trên các thư mục. Ví dụ, HGFS và các thư mục chia sẻ của HGFS không hỗ trợ hoạt động này.

Cấm Swappiness là một cài đặt kernel Linux ảnh hưởng đến hành vi của Trình quản lý bộ nhớ ảo. Cài đặt

sudo sysctl -w vm.zone_reclaim_mode=0

05 dao động từ

sudo sysctl -w vm.zone_reclaim_mode=0

06 đến

sudo sysctl -w vm.zone_reclaim_mode=0

07: Giá trị càng cao, nó càng thích hoán đổi các trang bộ nhớ sang đĩa qua các trang từ RAM.

  • Một cài đặt của

    sudo sysctl -w vm.zone_reclaim_mode=0

    06 vô hiệu hóa hoán đổi hoàn toàn [5].

  • Một cài đặt của

    sudo sysctl -w vm.zone_reclaim_mode=0

    09 cho phép kernel hoán đổi chỉ để tránh các vấn đề ngoài bộ nhớ.

  • Một cài đặt của

    sudo sysctl -w vm.zone_reclaim_mode=0

    10 cho biết kernel trao đổi thành đĩa thường xuyên và là giá trị mặc định trên nhiều bản phân phối Linux.

  • Một thiết lập của

    sudo sysctl -w vm.zone_reclaim_mode=0

    07 bảo hạt nhân hoán đổi mạnh mẽ thành đĩa.

MongoDB thực hiện tốt nhất nơi có thể tránh được sự hoán đổi hoặc giữ ở mức tối thiểu. Vì vậy, bạn nên đặt

sudo sysctl -w vm.zone_reclaim_mode=0

05 thành

sudo sysctl -w vm.zone_reclaim_mode=0

09 hoặc

sudo sysctl -w vm.zone_reclaim_mode=0

06 tùy thuộc vào nhu cầu ứng dụng và cấu hình cụm của bạn.

Ghi chú

Nếu phiên bản MongoDB của bạn được lưu trữ trên một hệ thống cũng chạy phần mềm khác, chẳng hạn như máy chủ web, bạn nên đặt

sudo sysctl -w vm.zone_reclaim_mode=0

05 thành

sudo sysctl -w vm.zone_reclaim_mode=0

09. Nếu có thể, bạn rất khuyến khích bạn chạy MongoDB trên hệ thống chuyên dụng của chính nó.

  • Để kiểm tra cài đặt swappiness hiện tại trên hệ thống của bạn, hãy chạy:

    cat /proc/sys/vm/swappiness

  • Để thay đổi độ swappness trên hệ thống của bạn:

    1. Chỉnh sửa tệp

      sudo sysctl -w vm.zone_reclaim_mode=0

      17 và thêm dòng sau:

    2. Chạy lệnh sau để áp dụng cài đặt:

Ghi chú

Nếu bạn đang chạy RHEL / CentOS và sử dụng cấu hình hiệu suất

sudo sysctl -w vm.zone_reclaim_mode=0

18, bạn cũng phải chỉnh sửa cấu hình đã chọn của mình để đặt

sudo sysctl -w vm.zone_reclaim_mode=0

05 thành

sudo sysctl -w vm.zone_reclaim_mode=0

09 hoặc

sudo sysctl -w vm.zone_reclaim_mode=0

06.

Đối với tất cả các triển khai MongoDB:all MongoDB deployments:

  • Sử dụng giao thức thời gian mạng (NTP) để đồng bộ hóa thời gian giữa các máy chủ của bạn. Điều này đặc biệt quan trọng trong các cụm Sharded.

Đối với các công cụ lưu trữ Wiredtiger, hãy xem xét các khuyến nghị sau:WiredTiger storage engines, consider the following recommendations:

  • Tắt

    sudo sysctl -w vm.zone_reclaim_mode=0

    22 cho khối lượng lưu trữ chứa các tệp cơ sở dữ liệu.

  • Điều chỉnh cài đặt

    sudo sysctl -w vm.zone_reclaim_mode=0

    23 cho nền tảng của bạn theo các đề xuất trong tham chiếu ULIMIT. Các giá trị

    sudo sysctl -w vm.zone_reclaim_mode=0

    23 thấp sẽ ảnh hưởng tiêu cực đến MongoDB khi được sử dụng nặng và có thể dẫn đến các kết nối thất bại với các quy trình MongoDB và mất dịch vụ.

    Ghi chú

    Nếu bạn đang chạy RHEL / CentOS và sử dụng cấu hình hiệu suất

    sudo sysctl -w vm.zone_reclaim_mode=0

    18, bạn cũng phải chỉnh sửa cấu hình đã chọn của mình để đặt

    sudo sysctl -w vm.zone_reclaim_mode=0

    05 thành

    sudo sysctl -w vm.zone_reclaim_mode=0

    09 hoặc

    sudo sysctl -w vm.zone_reclaim_mode=0

    06.

  • Đối với tất cả các triển khai MongoDB:

  • Sử dụng giao thức thời gian mạng (NTP) để đồng bộ hóa thời gian giữa các máy chủ của bạn. Điều này đặc biệt quan trọng trong các cụm Sharded.MongoDB on NUMA Hardware.

  • Đối với các công cụ lưu trữ Wiredtiger, hãy xem xét các khuyến nghị sau:if you are not using the default MongoDB directory paths or ports.

    Tắt

    sudo sysctl -w vm.zone_reclaim_mode=0

    22 cho khối lượng lưu trữ chứa các tệp cơ sở dữ liệu.

    Ghi chú

Nếu bạn đang chạy RHEL / CentOS và sử dụng cấu hình hiệu suất

sudo sysctl -w vm.zone_reclaim_mode=0

18, bạn cũng phải chỉnh sửa cấu hình đã chọn của mình để đặt

sudo sysctl -w vm.zone_reclaim_mode=0

05 thành

sudo sysctl -w vm.zone_reclaim_mode=0

09 hoặc

sudo sysctl -w vm.zone_reclaim_mode=0

06.WiredTiger storage engine:

  • Đối với tất cả các triển khai MongoDB:

    Sử dụng giao thức thời gian mạng (NTP) để đồng bộ hóa thời gian giữa các máy chủ của bạn. Điều này đặc biệt quan trọng trong các cụm Sharded.MongoDB commercial support can provide advice and guidance on alternate readahead configurations.

Đối với các công cụ lưu trữ Wiredtiger, hãy xem xét các khuyến nghị sau:

/libssl.so.: no version information available (required by /usr/bin/mongod)
/libcrypto.so.: no version information available (required by /usr/bin/mongod)

Tắt

sudo sysctl -w vm.zone_reclaim_mode=0

22 cho khối lượng lưu trữ chứa các tệp cơ sở dữ liệu.

objdump -T /mongod | grep " SSL_"
objdump -T /mongod | grep " CRYPTO_"

Điều chỉnh cài đặt

sudo sysctl -w vm.zone_reclaim_mode=0

23 cho nền tảng của bạn theo các đề xuất trong tham chiếu ULIMIT. Các giá trị

sudo sysctl -w vm.zone_reclaim_mode=0

23 thấp sẽ ảnh hưởng tiêu cực đến MongoDB khi được sử dụng nặng và có thể dẫn đến các kết nối thất bại với các quy trình MongoDB và mất dịch vụ.

0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write
0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write

Bắt đầu từ MongoDB 4.4, lỗi khởi động được tạo nếu giá trị

sudo sysctl -w vm.zone_reclaim_mode=0

23 cho số lượng tệp mở nằm theo

sudo sysctl -w vm.zone_reclaim_mode=0

26.

objdump -T /libssl.so.1*
objdump -T /libcrypto.so.1*

Tắt các trang lớn minh bạch. MongoDB hoạt động tốt hơn với các trang bộ nhớ ảo (4096 byte) bình thường. Xem cài đặt trang khổng lồ trong suốt.

Tắt numa trong bios của bạn. Nếu điều đó là không thể, hãy xem MongoDB trên phần cứng Numa.

Định cấu hình Selinux cho MongoDB nếu bạn không sử dụng các đường dẫn hoặc cổng thư mục MongoDB mặc định.

Xem: Định cấu hình Selinux cho MongoDB và định cấu hình SELINUX cho Doanh nghiệp MongoDB cho cấu hình cần thiết.Scheduling.

Đối với động cơ lưu trữ Wiredtiger:

  • Đặt cài đặt readahead giữa 8 đến 32 bất kể loại phương tiện lưu trữ (đĩa quay, SSD, v.v.).

  • ReadAHEAD cao hơn thường có lợi cho hoạt động I/O tuần tự. Vì các mẫu truy cập đĩa mongDB thường là ngẫu nhiên, sử dụng cài đặt readAHEAD cao hơn cung cấp lợi ích hạn chế hoặc suy giảm hiệu suất tiềm năng. Do đó, đối với hiệu suất mongoDB tối ưu, đặt ReadAHead trong khoảng từ 8 đến 32, trừ khi thử nghiệm cho thấy lợi ích có thể đo lường, có thể lặp lại và đáng tin cậy trong giá trị readahead cao hơn. Hỗ trợ thương mại MongoDB có thể cung cấp lời khuyên và hướng dẫn về các cấu hình readahead thay thế.

Trên các nền tảng Linux, bạn có thể quan sát một trong các câu sau đây trong nhật ký MongoDB:EC2 for either configuration, you should:

  • Các cảnh báo này chỉ ra rằng các thư viện TLS/SSL của hệ thống khác với các thư viện TLS/SSL mà

    ps --no-headers -o comm 1

    0 được tổng hợp. Thông thường, những tin nhắn này không yêu cầu can thiệp; Tuy nhiên, bạn có thể sử dụng các hoạt động sau để xác định các phiên bản biểu tượng mà

    ps --no-headers -o comm 1

    0 mong đợi:AWS Enhanced Networking for your instance. Not all instance types support Enhanced Networking.

    Các hoạt động này sẽ trả về đầu ra giống với một trong các dòng sau:AWS documentation.

Hai chuỗi cuối cùng trong đầu ra này là phiên bản biểu tượng và tên biểu tượng. So sánh các giá trị này với các giá trị được trả về bởi các hoạt động sau để phát hiện phiên bản biểu tượng không phù hợp:EC2, you should also:

  • Quy trình này không chính xác cũng không đầy đủ: nhiều biểu tượng được sử dụng bởi

    ps --no-headers -o comm 1

    0 từ thư viện

    sudo sysctl -w vm.zone_reclaim_mode=0

    30 không bắt đầu với

    sudo sysctl -w vm.zone_reclaim_mode=0

    31.IOPS for the storage, with separate devices for journal and data. Do not use the ephemeral (SSD) storage available on most instance types as their performance changes moment to moment. (The

    sudo sysctl -w vm.zone_reclaim_mode=0

    32 series is a notable exception, but very expensive.)

  • Tắt DVFS và chế độ tiết kiệm năng lượng CPU.DVFS and CPU power saving modes.

    Mẹo

    Xem thêm:

  • Vô hiệu hóa hyperthreading.

    Mẹo

    Xem thêm:

  • Vô hiệu hóa hyperthreading.

Sử dụng

0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write
0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
0 để liên kết địa phương bộ nhớ với một ổ cắm.Premium Storage. Microsoft Azure offers two general types of storage: Standard storage, and Premium storage. MongoDB on Azure has better performance when using Premium storage than it does with Standard storage.

Sử dụng lưu trữ cao cấp. Microsoft Azure cung cấp hai loại lưu trữ chung: lưu trữ tiêu chuẩn và lưu trữ cao cấp. MongoDB trên Azure có hiệu suất tốt hơn khi sử dụng lưu trữ cao cấp so với lưu trữ tiêu chuẩn.

Thời gian chờ IDLE của TCP trên bộ cân bằng tải Azure là 240 giây theo mặc định, điều này có thể khiến nó âm thầm giảm các kết nối nếu TCP giữ trên hệ thống Azure của bạn lớn hơn giá trị này. Bạn nên đặt sudo sysctl -w vm.zone_reclaim_mode=034 thành 120 để cải thiện vấn đề này.

Ghi chú

  • Bạn sẽ cần phải khởi động lại các quy trình

    ps --no-headers -o comm 1

    0 và

    ps --no-headers -o comm 1

    1 cho các cài đặt giữ toàn hệ thống mới để có hiệu lực.

    sysctl net.ipv4.tcp_keepalive_time

    Or:

    sudo sysctl -w vm.zone_reclaim_mode=0

    0

    Để xem cài đặt giữ trên Linux, hãy sử dụng một trong các lệnh sau:

    Thời gian chờ IDLE của TCP trên bộ cân bằng tải Azure là 240 giây theo mặc định, điều này có thể khiến nó âm thầm giảm các kết nối nếu TCP giữ trên hệ thống Azure của bạn lớn hơn giá trị này. Bạn nên đặt sudo sysctl -w vm.zone_reclaim_mode=034 thành 120 để cải thiện vấn đề này.

    Ghi chú

  • Bạn sẽ cần phải khởi động lại các quy trình

    ps --no-headers -o comm 1

    0 và

    ps --no-headers -o comm 1

    1 cho các cài đặt giữ toàn hệ thống mới để có hiệu lực.

    sudo sysctl -w vm.zone_reclaim_mode=0

    1

    Or:

    sudo sysctl -w vm.zone_reclaim_mode=0

    2

    Để xem cài đặt giữ trên Linux, hãy sử dụng một trong các lệnh sau:

    sudo sysctl -w vm.zone_reclaim_mode=0

    3

    Giá trị được đo bằng giây.

  • Mặc dù tên cài đặt bao gồm

    sudo sysctl -w vm.zone_reclaim_mode=0

    37, giá trị

    sudo sysctl -w vm.zone_reclaim_mode=0

    34 áp dụng cho cả IPv4 và IPv6.

    sudo sysctl -w vm.zone_reclaim_mode=0

    4

    Để thay đổi giá trị

    sudo sysctl -w vm.zone_reclaim_mode=0

    34, bạn có thể sử dụng một trong các lệnh sau, cung cấp một trong vài giây:

  • Các hoạt động này không tồn tại trên toàn bộ hệ thống khởi động lại. Để tồn tại cài đặt, hãy thêm dòng sau vào

    sudo sysctl -w vm.zone_reclaim_mode=0

    17, cung cấp một trong vài giây và khởi động lại máy:Command Prompt, where

    sudo sysctl -w vm.zone_reclaim_mode=0

    48 is expressed in hexadecimal (e.g.

    sudo sysctl -w vm.zone_reclaim_mode=0

    49 is

    sudo sysctl -w vm.zone_reclaim_mode=0

    50):

    sudo sysctl -w vm.zone_reclaim_mode=0

    5

    Các giá trị giữ lớn hơn

    sudo sysctl -w vm.zone_reclaim_mode=0

    41 giây, (5 phút) sẽ được ghi đè trên các ổ cắm

    ps --no-headers -o comm 1

    0 và

    ps --no-headers -o comm 1

    1 và được đặt thành

    sudo sysctl -w vm.zone_reclaim_mode=0

    41 giây.Windows Server Technet Article on KeepAliveTime for more information on setting keepalive for MongoDB deployments on Windows systems. Keepalive values greater than or equal to 600000 milliseconds (10 minutes) will be ignored by

    ps --no-headers -o comm 1

    0 and

    ps --no-headers -o comm 1

    1

Để xem cài đặt giữ trên Windows, hãy đưa ra lệnh sau:

Giá trị đăng ký không có mặt theo mặc định. Mặc định hệ thống, được sử dụng nếu giá trị vắng mặt, là

sudo sysctl -w vm.zone_reclaim_mode=0

45 mili giây hoặc

sudo sysctl -w vm.zone_reclaim_mode=0

46 trong thập lục phân.

Để thay đổi giá trị

sudo sysctl -w vm.zone_reclaim_mode=0

47, hãy sử dụng lệnh sau trong dấu nhắc lệnh quản trị viên, trong đó

sudo sysctl -w vm.zone_reclaim_mode=0

48 được biểu thị bằng thập lục phân (ví dụ:

sudo sysctl -w vm.zone_reclaim_mode=0

49 là

sudo sysctl -w vm.zone_reclaim_mode=0

50):

Người dùng Windows nên xem xét bài viết của Windows Server Technet về KeepAlIvetime để biết thêm thông tin về việc thiết lập Keepalive cho triển khai MongoDB trên các hệ thống Windows. Giá trị giữ lớn hơn hoặc bằng 600000 mili giây (10 phút) sẽ bị bỏ qua bởi

ps --no-headers -o comm 1

0 và

ps --no-headers -o comm 1

1

MongoDB tương thích với VMware.affinity rules. If you must manually migrate a virtual machine to another host and the

ps --no-headers -o comm 1

0 instance on the virtual machine is the primary, you must first

sudo sysctl -w vm.zone_reclaim_mode=0

55 the primary and then

sudo sysctl -w vm.zone_reclaim_mode=0

56

VMware hỗ trợ quá mức bộ nhớ, nơi bạn có thể gán nhiều bộ nhớ hơn cho các máy ảo của mình hơn là máy vật lý có sẵn. Khi bộ nhớ được ghi là quá mức, bộ ảo hóa phân bổ lại bộ nhớ giữa các máy ảo. Trình điều khiển khinh khí cầu của VMware (

sudo sysctl -w vm.zone_reclaim_mode=0

53) đòi lại các trang được coi là ít có giá trị nhất.networking best practices for vMotion and the VMKernel. Failure to follow the best practices can result in performance problems and affect replica set and sharded cluster high availability mechanisms.

Người lái xe bóng cư trú bên trong hệ điều hành của khách. Khi trình điều khiển khinh khí cầu mở rộng, nó có thể khiến hệ điều hành của khách đòi lại bộ nhớ từ các ứng dụng của khách, có thể can thiệp vào việc quản lý bộ nhớ của MongoDB và ảnh hưởng đến hiệu suất của MongoDB.

Không vô hiệu hóa trình điều khiển khinh khí cầu và các tính năng quá mức bộ nhớ. Điều này có thể khiến trình ảo hóa sử dụng hoán đổi của nó sẽ ảnh hưởng đến hiệu suất. Thay vào đó, bản đồ và bảo lưu toàn bộ lượng bộ nhớ cho máy ảo chạy MongoDB. Điều này đảm bảo rằng khinh khí cầu sẽ không được thổi phồng trong hệ điều hành cục bộ nếu có áp suất bộ nhớ trong trình ảo hóa do cấu hình quá mức.

Đảm bảo rằng các máy ảo ở trên máy chủ ESX/ESXi cụ thể bằng cách đặt các quy tắc ái lực của VMware. Nếu bạn phải di chuyển thủ công một máy ảo sang máy chủ khác và ví dụ

ps --no-headers -o comm 1

0 trên máy ảo là chính, trước tiên bạn phải

sudo sysctl -w vm.zone_reclaim_mode=0

55 chính và sau đó

sudo sysctl -w vm.zone_reclaim_mode=0

56

Để thay đổi giá trị

sudo sysctl -w vm.zone_reclaim_mode=0

47, hãy sử dụng lệnh sau trong dấu nhắc lệnh quản trị viên, trong đó

sudo sysctl -w vm.zone_reclaim_mode=0

48 được biểu thị bằng thập lục phân (ví dụ:

sudo sysctl -w vm.zone_reclaim_mode=0

49 là

sudo sysctl -w vm.zone_reclaim_mode=0

50):

Không vô hiệu hóa trình điều khiển khinh khí cầu và các tính năng quá mức bộ nhớ. Điều này có thể khiến trình ảo hóa sử dụng hoán đổi của nó sẽ ảnh hưởng đến hiệu suất. Thay vào đó, bản đồ và bảo lưu toàn bộ lượng bộ nhớ cho máy ảo chạy MongoDB. Điều này đảm bảo rằng khinh khí cầu sẽ không được thổi phồng trong hệ điều hành cục bộ nếu có áp suất bộ nhớ trong trình ảo hóa do cấu hình quá mức.

Ghi chú

Trên Linux, hãy sử dụng lệnh

sudo sysctl -w vm.zone_reclaim_mode=0

59 để kiểm tra xem I/O đĩa có phải là nút cổ chai cho cơ sở dữ liệu của bạn không. Chỉ định một số giây khi chạy iostat để tránh hiển thị các số liệu thống kê bao gồm thời gian kể từ khi khởi động máy chủ.

Ví dụ: lệnh sau sẽ hiển thị số liệu thống kê mở rộng và thời gian cho mỗi báo cáo được hiển thị, với lưu lượng truy cập tính bằng MB/S, trong một khoảng thời gian thứ hai:

Các trường chính từ

sudo sysctl -w vm.zone_reclaim_mode=0

59:

  • sudo sysctl -w vm.zone_reclaim_mode=0

    61: Đây là trường hữu ích nhất để kiểm tra nhanh, nó cho biết bao nhiêu phần trăm thời gian thiết bị/ổ đĩa được sử dụng.

  • sudo sysctl -w vm.zone_reclaim_mode=0

    62: Kích thước yêu cầu trung bình. Số nhỏ hơn cho giá trị này phản ánh các hoạt động IO ngẫu nhiên hơn.

BWM-NG là một công cụ dòng lệnh để giám sát sử dụng mạng. Nếu bạn nghi ngờ một nút cổ chai dựa trên mạng, bạn có thể sử dụng

sudo sysctl -w vm.zone_reclaim_mode=0

63 để bắt đầu quá trình chẩn đoán của mình. is a command-line tool for monitoring network use. If you suspect a network-based bottleneck, you may use

sudo sysctl -w vm.zone_reclaim_mode=0

63 to begin your diagnostic process.

Để thực hiện sao lưu cơ sở dữ liệu MongoDB của bạn, vui lòng tham khảo Tổng quan về Phương thức sao lưu MongoDB.