Phần cứng nào tạo nên một Máy chủ MongoDB tốt? Lấy nó ở đâu?


13

Giả sử bạn đang ở trên dell.com ngay bây giờ và bạn đang mua một máy chủ để chạy cơ sở dữ liệu MongoDB cho khởi nghiệp nhỏ của mình. Bạn sẽ phải xử lý hàng chục ngàn lượt viết và đọc mỗi phút (nhưng các đối tượng nhỏ). Bạn sẽ đi cho 2 bộ xử lý? Đầu tư nhiều hơn vào RAM?

Tôi đã nghe (sửa tôi nếu tôi sai) MongoDB xử lý nhiều nhất có thể trên RAM và sau đó xả mọi thứ vào đĩa, trong trường hợp đó tôi nên đầu tư vào CPU có bộ đệm L2 lớn, có thể> 40GB RAM và một ổ đĩa trạng thái rắn .. phải không?

Tôi sẽ tốt hơn với máy chủ cao cấp (~ 11.309 đô la, 2 bộ xử lý đắt tiền, 96GB RAM) hay 2 (~ 6.419 đô la, 2 bộ xử lý đắt tiền, 12GB RAM)?

Dell có ổn không hay bạn có đường tốt hơn không? (Tôi ở bên ngoài Hoa Kỳ, trên Bồ Đào Nha)


3
Tại sao bạn mua phần cứng thay vì đi với một cái gì đó như EC2 cho khởi nghiệp của bạn? Ít nhất là ban đầu cho đến khi bạn biết yêu cầu của bạn sẽ là gì.

Đồng ý với Tom. Tại sao không lấy một số trường hợp trên đám mây?

1
@mixdev, bạn đã sai: "Linux, NUMA và MongoDB có xu hướng không hoạt động tốt với nhau." nguồn: mongodb.org/display/DOCS/NUMA
Shadok

Câu trả lời:


19

Ban đầu, bạn sẽ muốn tăng cường RAM. RAM bạn sẽ cần phụ thuộc vào lượng dữ liệu bạn lưu trữ, số lượng bộ sưu tập, chỉ mục trên các bộ sưu tập đó, mẫu truy cập dữ liệu, v.v ... Rất nhiều yếu tố.

Điều quan trọng nhất là có đủ RAM để giữ các chỉ số của bạn trong RAM. Nếu không, hiệu suất của bạn sẽ bị giảm đáng kể vì (các) máy chủ của bạn sẽ trang liên tục trong khi Mongo di chuyển các tệp được ánh xạ bộ nhớ vào và ra khỏi RAM. Mặc dù vậy, chúng tôi chưa thấy tốc độ ghi bị ảnh hưởng nhưng mọi thứ khác đều như vậy. Việc xử lý ghi ra hàng đợi, xả nước, bãi bỏ, v.v ... tất cả đều đạt được thành công đáng kể khi chỉ số của bạn không còn phù hợp với RAM.

Vì vậy, không có câu trả lời ngắn thực sự. Về cơ bản, hãy thông minh về các chỉ số của bạn. Chỉ sử dụng những gì bạn cần. Giữ các bộ sưu tập nhỏ nếu bạn có thể (tức là chia ra thành nhiều nơi bạn có thể.) Các bộ sưu tập bị bẻ khóa cũng rất thú vị để xem xét.


1
Theo kinh nghiệm của chúng tôi, khi Mongo hết RAM cho các truy vấn, không chỉ truy vấn đi đến các tài liệu (chạy mãi, 5 phút, 15 phút, giờ ...), nhưng việc chèn bắt đầu không thành công.
Jonesome phục hồi Monica


6

Với MongoDB, điều bạn muốn là RAM. Và sau đó thêm một số RAM. Mua RAM không thể làm tổn thương.


3

Nếu bạn đang ở giai đoạn mua phần cứng sản xuất thì ứng dụng bạn đang chạy phải được viết, phải không? Vì vậy, chạy ứng dụng trên phần cứng bạn có và lấy số liệu. Dần dần thay đổi một số thành phần và có nhiều số liệu hơn. Khi bạn hoàn thành, bạn sẽ biết điểm tập trung nào là quan trọng nhất cho ứng dụng và kịch bản của bạn.


3

Đầu tiên - mua càng nhiều RAM càng tốt. Yếu tố giới hạn thứ hai là tốc độ đĩa. RAID giúp. SSD giúp. Thêm mảnh vỡ giúp đỡ. Đo thông lượng so với hiệu quả của đĩa và thời gian phản hồi cần thiết, sau đó quyết định những việc cần làm trong ngân sách bạn có.


1

Tôi sẽ tự hỏi nếu một giải pháp cụm Linux sẽ là một giải pháp thay thế tốt hơn, rẻ hơn.

MongoDB cho phép bạn phân phối dữ liệu trên nhiều máy chủ. Điều đó sẽ là không thể với một, bấm máy chủ.

Tôi nghĩ MongoDB là một trong những bước tiếp theo được thực hiện sau khi phát hiện ra rằng việc triển khai cơ sở dữ liệu quan hệ trên máy chủ bấm còi không đủ quy mô.


1

Hàng chục ngàn viết mỗi phút là không có gì. Bạn có thể nhận được 50.000 hoặc nhiều hơn ghi mỗi giây trên phần cứng tốt. Thông số kỹ thuật phần cứng thực sự phụ thuộc vào những gì bạn đang cố gắng làm. Nói chung, đủ RAM cho cơ sở dữ liệu lớn và hệ thống IO nhanh là rất quan trọng bên cạnh CPU ...


0

Điều quan trọng là phải thiết lập một đường cơ sở vững chắc trước khi thiết kế phần cứng của bạn. Thường mong đợi những loại câu hỏi này sẽ được hỏi bởi những người mongoDB có kinh nghiệm trước khi bất kỳ ai thậm chí có thể xem xét trả lời câu hỏi của bạn.

Chỉ số ứng dụng hiện tại (nếu có)

  • Tổng số hồ sơ cho đến nay?
  • Bắt đầu ước tính lưu trữ?
  • Dự kiến ​​tăng trưởng% / tháng?
  • Kích thước tài liệu trung bình?

Tải dữ liệu công việc nhập dữ liệu

  • Chèn mới / ngày, cao điểm & trung bình mỗi giây?
  • Cập nhật / ngày, cao điểm & trung bình mỗi giây?
  • Đọc / ngày, cao điểm & trung bình / giây?
  • Số tài liệu trung bình được trả về mỗi truy vấn: 70
  • Xóa / ngày, cao điểm & trung bình / giây: Không có
  • Sẽ có tải số lượng lớn / cập nhật số lượng lớn? Nếu vậy, bao nhiêu và thường xuyên như thế nào?
  • Có bao nhiêu loại tài liệu khác nhau sẽ có?
  • Có bao nhiêu cái?
  • Bạn mong đợi tài liệu của bạn trông như thế nào (tài liệu mẫu)?

Các mẫu truy vấn và kỳ vọng về hiệu suất

  • Đọc phản hồi SLA?
  • Viết phản hồi SLA?
  • Được đọc dựa trên phạm vi hoặc ngẫu nhiên?

Các mẫu truy cập dự kiến

  • Số lượng chỉ số phụ cần thiết?
  • Số lượng thuộc tính?
  • Sắp xếp điều kiện?
  • Độc thân hay hợp chất?
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.