2013-06-12 40 views
12

Dựa trên this answer, có vẻ như máy chủ sao lưu giữ bản sao bộ nhớ cache trong bộ nhớ cho mỗi khách hàng được kết nối. Sự hiểu biết của tôi là nó được sử dụng để tránh gửi nhiều bản sao dữ liệu khi xử lý các đăng ký trùng lặp trên máy khách.Sử dụng bộ nhớ phía máy chủ Meteor cho hàng ngàn người dùng đồng thời

Phần liên quan của câu trả lời liên quan (nhấn mạnh là của tôi):

Hộp hợp nhất: Công việc của hộp kết hợp là kết hợp các kết quả (bổ sung, thay đổi và loại bỏ các cuộc gọi) của tất cả các của một các chức năng xuất bản hoạt động của khách hàng vào một luồng dữ liệu duy nhất. Có một hộp hợp nhất cho mỗi khách hàng được kết nối. Nó chứa bản sao hoàn chỉnh của bộ nhớ cache minimongo của máy khách.

Giả sử câu trả lời vẫn chính xác trong phiên bản hiện tại của sao băng, không thể tạo ra một lượng lớn bộ nhớ trên máy chủ khi số lượng người dùng tăng lên?

Là một tính toán off-the-cuff, nếu một ứng dụng có bộ nhớ cache 100kB trên mỗi máy khách, thì 10.000 người dùng đồng thời sẽ sử dụng 1GB bộ nhớ trên máy chủ và 100.000 người dùng với 10GB khổng lồ! Điều này sẽ đúng ngay cả khi mỗi khách hàng đang xem xét dữ liệu gần như giống hệt nhau. Có vẻ hợp lý khi ứng dụng sử dụng nhiều dữ liệu hơn so với mỗi ứng dụng, điều này sẽ làm trầm trọng thêm vấn đề.

Sự cố này có tồn tại trong phiên bản hiện tại của Meteor không? Nếu vậy, những kỹ thuật nào có thể được sử dụng để giới hạn số lượng bộ nhớ mà máy chủ cần sử dụng để quản lý tất cả các đăng ký ứng dụng khách?

+0

Tôi không có câu trả lời cho câu hỏi của bạn, tuy nhiên chỉ cần nhận xét nhanh: Tôi nghĩ nếu bạn đang xem xét việc phục vụ 100.000 người dùng đồng thời, bạn cũng sẽ bị tắc nghẽn theo cách khác trước đó. 10GB là không có gì, ngay cả các máy chủ hộp pizza nhỏ nhất của HP DL160 'có thể được tải lên với 192GB. Cũng lưu ý rằng MDG đang có kế hoạch mở rộng Meteor thông qua một cái gì đó gọi là 'galaxy' - cập nhật mới nhất là ở đây: https://groups.google.com/forum/?fromgroups#!topic/meteor-core/fM50Lbo2D3U –

Trả lời

5

Hãy xem bài này bằng cách Arunoda tại blog meteorhacks.com mình:
http://meteorhacks.com/making-meteor-500-faster-with-smart-collections.html

mà nói về trang thông minh Các bộ sưu tập của mình:
http://meteorhacks.com/introducing-smart-collections.html

Ông đã tạo ra một Bộ sưu tập chồng thay thế mà đã thành công trong mục tiêu của nó cho tốc độ, hiệu quả (bộ nhớ & cpu) và khả năng mở rộng (bạn có thể thấy so sánh được vẽ trong bài đăng). Phải thừa nhận rằng trong các bài kiểm tra của mình, việc sử dụng RAM là không đáng kể với cả hai loại Collection, mặc dù cách anh ta thực hiện mọi thứ nên có sự khác biệt rất rõ ràng với kiểu sử dụng mà bạn đã đề cập.

Ngoài ra, bạn có thể thấy trong bài này trên thiên thạch-core:
https://groups.google.com/d/msg/meteor-core/jG1KLObX1bM/39aP4kxqWZUJ
rằng các nhà phát triển Meteor nhận thức được công việc của mình và đang hợp tác trong việc thực hiện một số cải tiến vào chính Meteor (nhưng cho đến khi đó gói thông minh của mình hoạt động tốt).

Lưu ý quan trọng! Bộ sưu tập thông minh dựa trên truy cập vào Mongo Oplog. Điều này rất dễ dàng nếu bạn đang chạy trên máy tính của riêng bạn hoặc cơ sở hạ tầng được lưu trữ. Nếu bạn đang sử dụng cơ sở dữ liệu dựa trên đám mây, tùy chọn này có thể không có sẵn, hoặc nếu có, sẽ có chi phí nhiều hơn các gói nhỏ hơn.

Các vấn đề liên quan