2012-02-04 34 views
5

Tôi đang làm việc với MongoDB trên 32 bit CentOS VPS với bộ nhớ trong 1GB. Nó hoạt động tốt hầu hết thời gian, nhưng mỗi bây giờ và sau đó nó sử dụng bộ nhớ gai và treo máy chủ của tôi.MongoDB đang sử dụng quá nhiều bộ nhớ

Có cách nào để ngăn chặn điều này, ví dụ, bằng cách giới hạn bộ nhớ và CPU mà MongoDB daemon sử dụng?

Tôi đã nghĩ đến việc chạy daemon Mongo với ionice và đặt mức ưu tiên thấp, nhưng tôi không chắc liệu điều đó có hiệu quả hay không.

Mọi trợ giúp hoặc con trỏ đều được chào đón!

+0

Wow, thú vị. Có lẽ bạn nên đăng điều này lên danh sách gửi thư mongoDB –

Trả lời

4

Nó không phải là hiện nay có thể để hạn chế dung lượng bộ nhớ. MongoDB sử dụng cơ chế memory-mapped file để truy cập các tệp dữ liệu. Do đó, lượng bộ nhớ đã sử dụng bị chi phối bởi hệ thống. Càng có nhiều dữ liệu bạn chạm vào, bạn càng cần nhiều RAM hơn.

+1

Do hậu quả của việc sử dụng các tệp ánh xạ bộ nhớ, [MongoDB trên các hệ thống 32 bit sẽ bị giới hạn ở khoảng 2 gigabyte dữ liệu] (http://blog.mongodb.org/post/137788967/32-bit-giới hạn). Bạn có thể muốn xem xét sử dụng một máy 64-bit cho cơ sở dữ liệu của bạn. – dcrosta

+0

@dcrosta: đúng, quên đề cập đến điều đó. –

+0

SergioTulentsev, dcrosta, cảm ơn lời khuyên! Đó là một môi trường thử nghiệm với ngân sách hạn chế nhưng sản xuất sẽ trên hệ thống 64 bit nặng hơn rất nhiều sau đó điều này nên tôi đoán vấn đề sẽ được giải quyết khi tôi chuyển dự án (miễn là tôi thêm phần cứng nhiều hơn khi cần) –

2

Tôi đoán bạn cũng đang chạy mọi thứ khác trên cùng máy chủ? Thực sự, cách tốt nhất để chạy mongo là đặt nó trên máy chủ của riêng mình, nơi mà những thứ như apache, mysql, vv sẽ không nhảy lên và can thiệp vào bộ nhớ RAM mà nó muốn sử dụng. Tôi đã có cùng một vấn đề bản thân mình - máy chủ sẽ đi vào trao đổi và choke chính nó mỗi một lần trong một thời gian, với sử dụng nặng.

Có lẽ bạn nên sử dụng hai máy chủ 512MB có thể so sánh được với giá cả (một máy chạy mongo và một máy chạy phần còn lại). Tôi cũng nghĩ về việc cố gắng chạy một máy ảo với mongo trên nó trong VPS, nhưng điều đó rơi vào thể loại "quá nhiều nỗ lực", đối với tôi.

Và yeah, như dcrosta nói, sử dụng 64-bit, trừ khi bạn muốn giới hạn kích thước dữ liệu của bạn đến dưới 2GB (và lý do tại sao bạn sẽ muốn làm điều đó?)

+0

Hey Wes, cảm ơn vì điều đó . Các máy chủ là để phát triển vì vậy không có ngân sách cho các thiết lập phức tạp không may nhưng môi trường sản xuất sẽ nặng hơn rất nhiều vì đến nay tôi đọc vấn đề sau đó nên được cố định một lần trên một hệ thống 64bit! –

1

Tôi đã có vấn đề tương tự, khi tôi đã sử dụng rất nhiều bản đồ/giảm thiểu, nơi bộ nhớ bị rò rỉ và bị treo thường xuyên. Tôi không sử dụng bản đồ/giảm nữa và không có rò rỉ bộ nhớ/tai nạn trong nhiều tháng nay.

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