Kara Brightwell
Kara Brightwell

Reputation: 2565

Why is the database of a Meteor app that has been run once (and never loaded) taking up nearly 3GB?

UPDATE: this was fixed after Meteor v0.4 (2012). For historical purposes:


Excerpt from 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

I merely ask because it was in my Dropbox and pushed me over my limit.

Upvotes: 9

Views: 1748

Answers (4)

Vinay Vemula
Vinay Vemula

Reputation: 3995

The commands that work for me are:

  1. stop mongodb instance if it is running

sudo service mongod stop

  1. create new mongodb instance without requiring 3+GB preallocated space and use smallfiles.

mongod --noprealloc --smallfiles

If you are getting “ERROR: dbpath (/data/db) does not exist.” when running 2, then run these commands before 2. sudo mkdir -p /data/db/

sudo chown `id -u` /data/db

Upvotes: 1

Robert Stewart
Robert Stewart

Reputation: 3330

You can turn off preallocation by passing the --noprealloc arg to mongod. The downside is that there will be pauses each time a new storage file needs to be allocated. Depending on the filesystem you are using (e.g., ext3 vs. ext4), this could result in noticeable latency for a user.

Upvotes: 1

zwippie
zwippie

Reputation: 15525

When meteor run is executed, it starts mongodb with default mongo settings, so it creates (massive) prealloc files in .meteor/local/db/journal.

There is no obvious way to disable this behavior. What I have done as a workaround is change the file app/lib/mongo_runner.js and add a --nojournal parameter that gets passed to mongodb at startup.

I created an issue for this: https://github.com/meteor/meteor/issues/15

Upvotes: 7

solisoft
solisoft

Reputation: 669

Maybe you can use smallfiles=true parameter for mongoDB? It will create smallest prealloc files

Upvotes: 1

Related Questions