MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

So sánh hiệu suất MongoDB trên đám mây công cộng:AWS, Azure &DigitalOcean

Vì vậy, trước khi bạn đầu tư nhiều thời gian và năng lượng vào một đám mây cụ thể, điều quan trọng là phải hiểu các đặc điểm hiệu suất tổng thể của MongoDB trên đám mây đó. Chúng tôi đã tìm kiếm thông tin này và không tìm thấy thông tin đó - vì vậy chúng tôi quyết định tổng hợp lại thông tin cho bạn như một phần của chuỗi hoạt động của chúng tôi.

Giàn chuẩn

Chúng tôi quyết định so sánh AWS, Azure và DigitalOcean cho thử nghiệm này. Hai bộ cấu hình khác nhau đã được chọn. Bảng dưới đây tóm tắt các cấu hình máy:

Nhà cung cấp Vùng ScaleGrid Medium *
(Cores / RAM / Disk / Prov IOPS)
ScaleGrid Large * (Cores / RAM / Disk / Prov IOPS)
AWS Đông Hoa Kỳ 1 / 3,75GB / 60GB / 300 2 / 7,5GB / 120GB / 500
Azure Đông Hoa Kỳ 2 / 3.5GB / 60GB / tối đa 2000 4 / 7GB / 120GB / tối đa 4000
DigitalOcean New York 3 2 / 4GB / 25GB / SSD ** 4 / 8GB / 35GB / SSD **

* Tham khảo tại đây trong “MongoDB Hosting” để biết cấu hình máy chi tiết.
** DigitalOcean đã gắn trực tiếp ổ SSD.

Các bài kiểm tra hiệu suất điểm chuẩn đã được chạy bằng YCSB Workload A (cập nhật khối lượng công việc nặng). Chúng tôi đã nói về YCSB, cách thiết lập và khối lượng công việc của nó trong một bài đăng rất chi tiết vào tháng trước.

  1. Tất cả các bài kiểm tra điểm chuẩn đã được thực hiện trong một cấu hình độc lập
  2. Đối với cả hai cấu hình, 5 triệu bản ghi đã được chèn với nhiều mức tải máy chủ khác nhau (dựa trên số lượng chuỗi máy khách).
  3. Đối với cấu hình Trung bình, khi đó Khối lượng công việc A được thực thi với các giá trị mặc định (Cập nhật 50%, Đọc 50%) với số hoạt động là 5 triệu ở nhiều mức tải khác nhau của máy chủ.
  4. Đối với cấu hình Lớn, khi đó Khối lượng công việc A được thực thi với các giá trị mặc định (50% Cập nhật, 50% Đọc) với số hoạt động là 10 triệu ở nhiều mức tải khác nhau của máy chủ.

Kết quả

Chúng tôi sẽ thảo luận về kết quả dựa trên hiệu suất chèn và đặc điểm thông lượng / độ trễ khi cập nhật khối lượng công việc lớn.

Chèn hiệu suất

Phiên bản trung bình

Đặc điểm Thông lượng / độ trễ để chèn bản ghi 5M trên cấu hình Phương tiện:

Phiên bản lớn

Đặc điểm Thông lượng / độ trễ để chèn bản ghi 5M trên cấu hình Lớn:

Cập nhật Hiệu suất

Phiên bản trung bình

Đặc điểm Thông lượng / độ trễ cho các hoạt động ghi / cập nhật 5M trên cấu hình phương tiện:

Thử nghiệm được chạy với 32 luồng chỉ dành cho DigitalOcean. AWS và Azure là lớp lót phẳng ở 16 luồng. Tuy nhiên, DigitalOcean mang lại ấn tượng về việc mở rộng tuyến tính cho đến 32 luồng.

Phiên bản lớn

Đặc điểm Thông lượng / độ trễ cho các hoạt động ghi / cập nhật 10M trên cấu hình Lớn:

Phân tích tổng thể

  1. Đúng như mong đợi, MongoDB trên DigitalOcean luôn có đặc điểm thông lượng cao / độ trễ thấp xuyên suốt và đánh bại những người khác trong giai đoạn chèn, giải nén tối đa năng lượng từ các ổ SSD cục bộ của nó. Điều thú vị là mặc dù nó diễn ra rất tốt trong giai đoạn đọc / cập nhật, nhưng các nhà cung cấp khác lại cho nó một chút cạnh tranh công bằng, đặc biệt là khi tải máy chủ tăng lên. Rõ ràng AWS / Azure đang sử dụng bộ nhớ nối mạng có thông lượng cao hơn nhiều.
  2. Để có được hiệu suất tốt hơn từ đĩa AWS, người dùng có thể sử dụng kích thước đĩa lớn hơn hoặc phân bổ các IOPS được cung cấp nhiều hơn.
  3. Trên các phiên bản Medium, MongoDB trên Azure dường như hoạt động tốt hơn nhiều so với AWS một cách nhất quán, cả trong giai đoạn chèn và sau đó cập nhật / đọc. Điều này thật đáng ngạc nhiên. Phần cứng khá đồng đều. Trên các phiên bản Lớn, hiệu suất AWS tốt hơn rõ rệt so với Azure.
  4. Cả AWS và Azure đều giảm khá nhiều về độ trễ khi tải tăng lên. Azure dường như có đường cong suy giảm độ trễ khá tốt.
  5. Một khía cạnh thú vị khác của MongoDB về hiệu suất AWS xuyên suốt là cách nó "phẳng":Dường như giảm chất lượng một cách duyên dáng ngay cả trên quy mô nhật ký.
  6. Dựa trên các con số về độ trễ, có vẻ như điểm hấp dẫn, từ quan điểm tải, đối với phiên bản Trung bình và Lớn lần lượt là 8 và 16 luồng.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách xóa tài liệu MongoDB bằng cách nhập tệp

  2. Truy vấn các đối tượng được nhúng trong Mongoid / rails 3 (Toán tử thấp hơn, Min và sắp xếp)

  3. Triển khai MongoDB an toàn trên Amazon AWS

  4. Cách viết truy vấn union trong mongoDB

  5. Kết nối với MongoDB qua SSL với Node.js