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

Tại sao Mongodb hoạt động tốt hơn trên Linux so với Windows?

Thứ nhất:tất cả các hệ thống tệp có sẵn trên máy chủ Windows 2008 đều rất, rất kém hiệu quả. So với XFS hoặc ext4, chúng chậm hơn tới 40% khi cả hệ thống tệp Windows và Linux đều được tối ưu hóa.

Thứ hai:độ trễ có thể là một vấn đề. Ngăn xếp mạng trên hệ thống Linux hiện tại chỉ đơn giản là nhanh hơn trên máy chủ W2008.

Thứ ba:nếu bạn có một tường lửa đang chạy trên hộp của mình, thì độ trễ sẽ trở thành một vấn đề lớn hơn đối với việc truy cập từ xa. Trong khi Linux 'iptables đủ nhanh và hiệu quả để phần lớn các thiết bị tường lửa dựa trên nó, các tường lửa có sẵn cho Windows thì không, vì nhiều lý do.

Thêm vào đó:Windows không hiệu quả với RAM như Linux. MongoDB sử dụng càng nhiều RAM càng tốt (đến thời điểm nó cần), chẳng hạn như để lưu trữ (bản sao của) tệp chỉ mục trong RAM. Windows chiếm một phần RAM khả dụng lớn hơn nhiều so với máy Linux. Vì vậy, các tệp chỉ mục có thể được đọc từ đĩa hơn là từ RAM, thứ tự cấp độ chậm hơn.

Điểm mấu chốt:việc chạy mongoDB sản xuất trên hệ thống Windows là một ý tưởng thực sự tồi.

CHỈNH SỬA

Theo yêu cầu trong phần bình luận:

  • Về tốc độ hệ thống tệp: So sánh hiệu suất I / O của Hệ thống tệp:RedHat Enterprise 6 so với Microsoft Windows Server 2012
  • Đối với việc sử dụng RAM không hiệu quả, bạn có thể muốn tự mình kiểm tra. Hệ thống Windows Server nhất định sử dụng bao nhiêu RAM khi chạy không tải? Làm thế nào điều này so sánh với bất kỳ chạy không tải Máy chủ Linux nhất định? Hãy tốt và giả sử rằng máy chủ Windows chỉ cần 128M cho GUI của nó - 128MB lãng phí. Nhân với 20, đây không phải là một kích thước cụm lớn, chúng ta đang nói đến 2,5 GB - có thể dễ dàng tạo thành máy chủ cấu hình hoặc trình phân xử, nếu không muốn nói là nhiều hơn. Và số tiền này sẽ được chi cho GUI, đối với một hệ thống hiếm khi cần một cái, nếu có. Theo sự thật khó hiểu, bạn có thể muốn đọc So sánh hiệu suất CPU và bộ nhớ:Red Hat Enterprise Linux 6 và Windows Server 2012
  • Về tốc độ của ngăn xếp mạng, có nhiều nguồn, đây là hai nguồn mà tôi có xu hướng tham khảo:
    • Hiệu suất So sánh được Đo lường của ngăn xếp TCP , cũ hơn, nhưng chúng ta đang nói về các thứ tự về độ lớn, điều này ít nhất cũng cho ta một ý tưởng
    • So sánh Hiệu suất Mạng:Red Hat Enterprise Linux 6 và Windows Server 2012

Bạn có thể đã nhận ra rằng tôi đã tham khảo ba báo cáo của Principled Technologies. Mặc dù tôi không liên kết với họ theo bất kỳ cách nào, IMHO họ đã làm rất tốt khi so sánh RHEL 6 và Windows Server 2012 bằng cách sử dụng các điểm chuẩn tiêu chuẩn của ngành và tối ưu hóa rõ ràng cả hai hệ điều hành cho tác vụ được đề cập cũng như sử dụng các hệ điều hành khác.

Người ta có thể tranh luận rằng sự so sánh này không chứng minh rằng tất cả các bản phân phối GNU / Linux đều nhanh hơn Windows Server 2012, các tính năng mà chúng ta đang nói đến là những tính năng được cung cấp bởi Nhân Linux và thường không có lỗi, vì vậy có thể an toàn khi cho rằng tương tự có thể mong đợi kết quả từ tất cả các bản phân phối chính.

Với một phần lợi thế về hiệu suất cực cao của Linux (ngăn xếp TCP của Linux 'nhanh hơn gần 4 lần so với Windows Server đối với kích thước thư lớn, thường xảy ra trong các ứng dụng cơ sở dữ liệu), tôi khẳng định lại rằng nó là một Ý tưởng Rất tồi ™ để chạy MongoDB sản xuất trên Hệ thống Windows.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để Đảm bảo Nhóm MongoDB của bạn có thể sống sót khi Amazon AWS ngừng hoạt động?

  2. Phần còn lại của dữ liệu khởi động mùa xuân, ràng buộc @Notnull không hoạt động

  3. làm thế nào để tôi có thể biết những cổng mongo đang lắng nghe từ trình bao mongo?

  4. Cài đặt MongoDB trên Windows

  5. Làm cách nào tôi có thể thay đổi kích thước bộ sưu tập giới hạn mongodb mà không làm mất dữ liệu?