6

更新:这是在 Meteor v0.4 (2012) 之后修复的。出于历史目的:


我正在微型 EC2 Ubuntu 11.10 实例 (8GiB) 上测试 Meteor,安装并登录后,我运行df命令查看核心文件消耗了多少内存(大约 10%):

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             8256952    782068   7055456  10% /
udev                    295276         4    295272   1% /dev
tmpfs                   121248       148    121100   1% /run
none                      5120         0      5120   0% /run/lock
none                    303112         0    303112   0% /run/shm

在安装 NodeJS 和 NPM 后,我再次运行df以确定消耗了多少空间并且看起来并不多(额外的 2%):

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             8256952    919444   6918080  12% /
udev                    295276         4    295272   1% /dev
tmpfs                   121248       148    121100   1% /run
none                      5120         0      5120   0% /run/lock
none                    303112         0    303112   0% /run/shm

然后我开始安装 MongoDB,正如预期的那样,这占用了更多的内存(59% 的磁盘空间在使用中):

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             8256952   4585884   3251640  59% /
udev                    295276         4    295272   1% /dev
tmpfs                   121248       148    121100   1% /run
none                      5120         0      5120   0% /run/lock
none                    303112         0    303112   0% /run/shm

但是,在安装 Meteor 后,curl install.meteor.com | /bin/sh从他们的站点创建示例 myappmeteor create myapp并运行 myapp cd myapp&meteor我成功地在浏览器中看到该应用程序显示“Hello World”(等),在终端端我看到了这个:

[[[[[ ~/myapp ]]]]]

Initializing mongo database... this may take a moment.
Running on: http://localhost:3000/
^C

关闭服务器后,我df最后一次检查了一次,惊讶地发现磁盘已满!?

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/xvda1             8256952   7778748     58776 100% /
udev                    295276         4    295272   1% /dev
tmpfs                   121248       148    121100   1% /run
none                      5120         0      5120   0% /run/lock
none                    303112         0    303112   0% /run/shm

我的问题是:为什么 Meteor(MongoDB?)为一个非常简单的应用程序占用约 3GiB 磁盘空间?

有没有办法减少这种磁盘空间的消耗?

谢谢!

4

3 回答 3

10

这是在流星的开发分支上修复的,将在下一个版本中。

https://github.com/meteor/meteor/commit/6042b91a9ca75fc47b2477e613da093f1c9b943e

似乎 mongo 默认使用大文件,必须被告知不要这样做。我猜对于 mongo 的正常用例是可以理解的。通过预分配大文件,它们可以在某些情况下提高性能。

于 2012-04-16T05:22:49.487 回答
5

MongoDB在第一次启动时为其日志预分配 3GB 。Meteor 应该默认在开发模式下关闭它。

于 2012-04-16T05:16:01.507 回答
0

线程中已经讨论了这种大分配的原因和解决方法。已检查 --noprealloc 选项,它工作正常。

于 2012-04-16T05:44:42.980 回答