2012-04-12 7 views
9

UPDATE: Dies wurde nach Meteor v0.4 (2012) behoben. Aus historischen Gründen:Warum wird die Datenbank einer Meteor-App, die einmal (und niemals geladen) ausgeführt wurde, fast 3 GB benötigt?


Auszug aus 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 

Ich frage nur, weil es in meinem Dropbox war und schob mich über meine Grenze.

+1

Dies wurde im Jahr 2012 * gefragt *. Sie haben eine 18 Monate alte Frage einfach wegen einer Korrektur abgelehnt. Das vermeintliche Duplikat wurde vier Tage nach dieser Frage gestellt. Diese Frage führte fast unmittelbar dazu, dass das Problem behoben wurde. –

+0

Entschuldigung, ich habe das Original und das Duplikat verwechselt; hat den Downvote zurückgesetzt. –

Antwort

7

Wenn meteor run ausgeführt wird, startet es mongodb mit Standard-Mongo-Einstellungen, so erstellt es (massiv) prealloc-Dateien in .meteor/local/db/journal.

Es gibt keine offensichtliche Möglichkeit, dieses Verhalten zu deaktivieren. Was ich als Workaround getan habe, ist die Datei app/lib/mongo_runner.js zu ändern und einen --nojournal Parameter hinzuzufügen, der beim Start an mongodb übergeben wird.

habe ich ein Problem für diese: https://github.com/meteor/meteor/issues/15

+0

Autsch. Beeindruckend. Das wäre der Grund. –

+2

Dies ist in git behoben und wird in der nächsten Version sein. Schöner Fang! – n1mmy

1

Vielleicht können Sie smallfiles = true Parameter für mongoDB verwenden? Er erstellt die kleinsten prealloc-Dateien.

1

Sie können die Vorbelegung ausschalten, indem Sie das Argument --noprealloc an mongod übergeben. Der Nachteil ist, dass es jedes Mal Pausen gibt, wenn eine neue Speicherdatei zugewiesen werden muss. Abhängig von dem verwendeten Dateisystem (z. B. ext3 vs. ext4) könnte dies zu einer merklichen Latenz für einen Benutzer führen.

1

Die Befehle, die für mich arbeiten, sind:

  1. Stop mongodb Beispiel, wenn es

sudo service mongod stop

    läuft
  1. neue mongodb erstellen, ohne Sie benötigen 3 + GB vorbelegten Speicherplatz und verwenden kleine Dateien.

mongod --noprealloc --smallfiles

Wenn Sie immer „ERROR:. Dbpath (/ data/db) nicht existiert“, wenn 2 ausgeführt wird, führen dann diese Befehle vor 2. sudo mkdir -p /data/db/

sudo chown `id -u` /data/db