2012-04-12 6 views
9

CẬP NHẬT: điều này đã được khắc phục sau Meteor v0.4 (2012). Đối với mục đích lịch sử:Tại sao cơ sở dữ liệu của ứng dụng Meteor đã được chạy một lần (và không bao giờ được nạp) chiếm gần 3GB?


Trích từ du:

2890768 ./Code/Meteor/QuarterTo/.meteor/local/db/journal 
2890772 ./Code/Meteor/QuarterTo/.meteor/local/db 
2890776 ./Code/Meteor/QuarterTo/.meteor/local 
2890788 ./Code/Meteor/QuarterTo/.meteor 
2890804 ./Code/Meteor/QuarterTo 

Tôi chỉ hỏi vì nó là trong Dropbox của tôi và đẩy tôi qua giới hạn của tôi.

+1

Đây là * đã hỏi * vào năm 2012. Bạn vừa mới downvoted câu hỏi cũ 18 tháng vì đã được sửa. Bản sao được cho là đã được hỏi bốn ngày sau câu hỏi này. Câu hỏi này gần như trực tiếp dẫn đến vấn đề đang được khắc phục. –

+0

Xin lỗi, tôi đã nhầm lẫn bản gốc và bản sao; hoàn nguyên downvote. –

Trả lời

7

Khi meteor run được thực thi, nó khởi động mongodb với cài đặt mongo mặc định, do đó, nó tạo ra các tệp prealloc (lớn) trong .meteor/local/db/journal.

Không có cách nào rõ ràng để tắt hành vi này. Những gì tôi đã làm như một workaround là thay đổi tập tin app/lib/mongo_runner.js và thêm một tham số --nojournal được truyền cho mongodb lúc khởi động.

Tôi tạo ra một vấn đề cho việc này: https://github.com/meteor/meteor/issues/15

+0

Ouch. Wow. Đó là lý do tại sao. –

+2

Điều này được sửa trong git và sẽ có trong bản phát hành tiếp theo. Đẹp bắt! – n1mmy

1

lẽ bạn có thể sử dụng smallfiles = tham số đúng đối với MongoDB? Nó sẽ tạo ra các tập tin prealloc nhỏ nhất

1

Bạn có thể tắt chế độ preallocation bằng cách truyền --noprealloc arg đến mongod. Nhược điểm là sẽ có tạm dừng mỗi khi một tập tin lưu trữ mới cần phải được phân bổ. Tùy thuộc vào hệ thống tệp bạn đang sử dụng (ví dụ: ext3 so với ext4), điều này có thể dẫn đến thời gian chờ đáng chú ý cho người dùng.

1

Các lệnh mà làm việc cho tôi là:

  1. dừng MongoDB dụ nếu nó đang chạy

sudo service mongod stop

  1. tạo dụ MongoDB mới mà không yêu cầu 3 + GB không gian được phân bổ và sử dụng các tệp nhỏ.

mongod --noprealloc --smallfiles

Nếu bạn đang nhận được “ERROR:. DBPATH (/ data/db) không tồn tại” khi chạy 2, sau đó chạy các lệnh này trước 2. sudo mkdir -p /data/db/

sudo chown `id -u` /data/db