Trên trang này
- Hỗ trợ nền tảng
- Ghi chú hỗ trợ nền tảng
- Ma trận hỗ trợ nền tảng
- MongoDB
6sudo sysctl -w vm.zone_reclaim_mode=0
- Đồ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ô
7 tối thiểu sau đây: [3]sudo sysctl -w vm.zone_reclaim_mode=0
Đối với Intel
7, MongoDB yêu cầu một trong số:sudo sysctl -w vm.zone_reclaim_mode=0
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
7, MongoDB yêu cầu:sudo sysctl -w vm.zone_reclaim_mode=0
một máy ủi hoặc bộ xử lý sau này.
Bắt đầu từ MongoDB 5.0,
0,ps --no-headers -o comm 1
1 và Shell Legacyps --no-headers -o comm 1
2 không còn hỗ trợ các nền tảngps --no-headers -o comm 1
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].sudo sysctl -w vm.zone_reclaim_mode=0
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 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 ps --no-headers -o comm 1
4 không đáp ứng yêu cầu kiến trúc vi mô tối thiểu này.
ps --no-headers -o comm 1
ps --no-headers -o comm 1
ps --no-headers -o comm 1
ps --no-headers -o comm 1
Quan trọng
v4.0 kết thúc cuộc đời
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 |
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 |
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 | |
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 | |
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+ | |||
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+ | |||
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+ | |
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+ | |
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 | |
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 | |
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+ |
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+ |
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 |
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 |
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 | ||
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 | ||
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+ | |
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+ | |
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 |
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 |
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 | ||
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 | ||
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+ |
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+ |
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 | ||
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 | ||
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 | |
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 | |
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 | |||
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 | |||
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 | |||
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 | |||
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 |
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 |
x86_64 | Cân nhắc cụ thể của nền tảng | Giám sát hiệu suất | ||||
x86_64 | Cân nhắc cụ thể của nền tảng | Giám sát hiệu suất | ||||
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 | |
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 | |
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 | ||
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 | ||
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 | |||
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 | |||
arm64 | Cân nhắc cụ thể của nền tảng | Giám sát hiệu suất | ||||
arm64 | Cân nhắc cụ thể của nền tảng | Giám sát hiệu suất | ||||
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+ | |
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+ | |
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+ | ||
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+ | ||
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 | ||
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 | ||
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 | |
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 | |
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 | ||
arm64 | 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 | 4.2.7+ | |
ppc64le | Cân nhắc cụ thể của nền tảng | |||||
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 | |
ppc64le | Cân nhắc cụ thể của nền tảng | |||||
ppc64le | 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 | |||||
s390x | Cân nhắc cụ thể của nền tảng | Giám sát hiệu suất | 5.0.9+ | |||
s390x | Cân nhắc cụ thể của nền tảng | |||||
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. |
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. | |
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 | ||||
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. | ||
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. | ||
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. | ||
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
3ps --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ỉ địnhWiredtiger 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
3ps --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ỉ địnhWiredtiger 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 libc6
8 hoặc sudo apt-get install libc6
9 cho các thành viên bộ bản sao sử dụng công cụ lưu trữ Wiredtiger.
sudo apt-get install libc6
sudo apt-get install libc6
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
0 Viết mối quan tâm, sau đó đưa ra hoạt động đọc của bạn vớicat /proc/sys/vm/swappiness
1 Mở thích đọc vàcat /proc/sys/vm/swappiness
2 hoặccat /proc/sys/vm/swappiness
3 Đọc mối quan tâm.cat /proc/sys/vm/swappiness
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]
5Theo 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]
5Theo 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.
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
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
0 vàps --no-headers -o comm 1
1 của bạn được bắt đầu bởips --no-headers -o comm 1
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].0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write 0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
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.Nếu "
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 qua0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write 0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write
0 theo mặc định.0000000000000000 DF *UND* 0000000000000000 libssl.so.10 SSL_write 0000000000000000 DF *UND* 0000000000000000 OPENSSL_1.0.0 SSL_write 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 1
0.
ps --no-headers -o comm 1
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ú
0objdump -T /libssl.so.1* objdump -T /libcrypto.so.1*
1objdump -T /libssl.so.1* objdump -T /libcrypto.so.1*
2objdump -T /libssl.so.1* objdump -T /libcrypto.so.1*
3objdump -T /libssl.so.1* objdump -T /libcrypto.so.1*
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*
4Ghi 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
5 hoặcobjdump -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.objdump -T /libssl.so.1* objdump -T /libcrypto.so.1* - ZlibProvides Tốc độ nén tốt hơn so với
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.objdump -T /libssl.so.1* objdump -T /libcrypto.so.1* - ZSTD [có sẵn bắt đầu từ MongoDB 4.2] cung cấp tốc độ nén tốt hơn cả
7 vàobjdump -T /libssl.so.1* objdump -T /libcrypto.so.1*
5 và có chi phí CPU thấp hơn so vớiobjdump -T /libssl.so.1* objdump -T /libcrypto.so.1*
5.objdump -T /libssl.so.1* objdump -T /libcrypto.so.1*
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
3Wiredtiger 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ố
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ơnsysctl 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ồ.sysctl net.ipv4.tcp_keepalive_time
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ư
6,sysctl net.ipv4.tcp_keepalive_time
7 vàsysctl net.ipv4.tcp_keepalive_time
8sysctl net.ipv4.tcp_keepalive_time
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
01 của hạt nhân Linux.sudo sysctl -w vm.zone_reclaim_mode=0
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
02 của hạt nhân Linux.sudo sysctl -w vm.zone_reclaim_mode=0
Trên Red Hat Enterprise Linux và Centos, sử dụng ít nhất phiên bản
03 của hạt nhân Linux.sudo sysctl -w vm.zone_reclaim_mode=0
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
06 vô hiệu hóa hoán đổi hoàn toàn [5].sudo sysctl -w vm.zone_reclaim_mode=0
Một cài đặt của
09 cho phép kernel hoán đổi chỉ để tránh các vấn đề ngoài bộ nhớ.sudo sysctl -w vm.zone_reclaim_mode=0
Một cài đặt của
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.sudo sysctl -w vm.zone_reclaim_mode=0
Một thiết lập của
07 bảo hạt nhân hoán đổi mạnh mẽ thành đĩa.sudo sysctl -w vm.zone_reclaim_mode=0
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:
Chỉnh sửa tệp
17 và thêm dòng sau:sudo sysctl -w vm.zone_reclaim_mode=0
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
22 cho khối lượng lưu trữ chứa các tệp cơ sở dữ liệu.sudo sysctl -w vm.zone_reclaim_mode=0
Điều chỉnh cài đặt
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ụ.sudo sysctl -w vm.zone_reclaim_mode=0
Ghi chú
Nếu bạn đang chạy RHEL / CentOS và sử dụng cấu hình hiệu suất
18, bạn cũng phải chỉnh sửa cấu hình đã chọn của mình để đặtsudo sysctl -w vm.zone_reclaim_mode=0
05 thànhsudo sysctl -w vm.zone_reclaim_mode=0
09 hoặcsudo sysctl -w vm.zone_reclaim_mode=0
06.sudo sysctl -w vm.zone_reclaim_mode=0
Đố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
22 cho khối lượng lưu trữ chứa các tệp cơ sở dữ liệu.sudo sysctl -w vm.zone_reclaim_mode=0
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à
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.ps --no-headers -o comm 1
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
0 từ thư việnps --no-headers -o comm 1
30 không bắt đầu vớisudo 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. [Thesudo sysctl -w vm.zone_reclaim_mode=0
32 series is a notable exception, but very expensive.]sudo sysctl -w vm.zone_reclaim_mode=0
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=0
34 thành 120 để cải thiện vấn đề này.
sudo sysctl -w vm.zone_reclaim_mode=0
Ghi chú
Bạn sẽ cần phải khởi động lại các quy trình
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.ps --no-headers -o comm 1
sysctl net.ipv4.tcp_keepalive_time
Or:
0sudo sysctl -w vm.zone_reclaim_mode=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
34 thành 120 để cải thiện vấn đề này.sudo sysctl -w vm.zone_reclaim_mode=0
Ghi chú
Bạn sẽ cần phải khởi động lại các quy trình
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.ps --no-headers -o comm 1
1sudo sysctl -w vm.zone_reclaim_mode=0
Or:
2sudo sysctl -w vm.zone_reclaim_mode=0
Để xem cài đặt giữ trên Linux, hãy sử dụng một trong các lệnh sau:
3sudo sysctl -w vm.zone_reclaim_mode=0
Giá trị được đo bằng giây.
Mặc dù tên cài đặt bao gồm
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
4sudo sysctl -w vm.zone_reclaim_mode=0
Để thay đổi giá trị
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:sudo sysctl -w vm.zone_reclaim_mode=0
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
17, cung cấp một trong vài giây và khởi động lại máy:Command Prompt, wheresudo sysctl -w vm.zone_reclaim_mode=0
48 is expressed in hexadecimal [e.g.sudo sysctl -w vm.zone_reclaim_mode=0
49 issudo sysctl -w vm.zone_reclaim_mode=0
50]:sudo sysctl -w vm.zone_reclaim_mode=0
5sudo sysctl -w vm.zone_reclaim_mode=0
Các giá trị giữ lớn hơn
41 giây, [5 phút] sẽ được ghi đè trên các ổ cắmsudo sysctl -w vm.zone_reclaim_mode=0
0 vàps --no-headers -o comm 1
1 và được đặt thànhps --no-headers -o comm 1
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 bysudo sysctl -w vm.zone_reclaim_mode=0
0 andps --no-headers -o comm 1
1ps --no-headers -o comm 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
1MongoDB 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
56VMware 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:
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.sudo sysctl -w vm.zone_reclaim_mode=0
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.