【问题标题】:Zombie.js running slowly in VirtualBox shared folderZombie.js 在 VirtualBox 共享文件夹中运行缓慢
【发布时间】:2014-06-12 17:39:36
【问题描述】:

我正在尝试在我的 Node.js 项目中使用 Zombie。该项目在 VirtualBox VM 上的共享文件夹中运行。当 Zombie 安装到共享文件夹而不是全局安装时,我注意到性能大幅下降。

假设我在zombie_test.js 中有以下内容:

require("zombie");

如果我全局安装zombie,require语句运行不到一秒:

$ sudo npm install zombie -g
...
$ time node zombie_test.js

real    0m0.651s
user    0m0.464s
sys     0m0.116s

如果我在本地安装包,则需要 6 秒。

$ npm install zombie --no-bin-links
...
$ time node zombie_test.js

real    0m5.933s
user    0m0.992s
sys     0m1.424s

我尝试过的任何其他节点模块都不会出现这种速度下降。如果我将 npm-install 本地安装到 VM 上的非共享目录,也不会发生这种情况。

有人知道为什么僵尸会出现这种减速,或者我是否可以做些什么来改善它?

【问题讨论】:

  • 您是否尝试过使用 NFS 导出共享并将其挂载到客户机中?您的问题并不清楚,但如果您使用 Vagrant 创建 VM,这样做真的很容易(docs.vagrantup.com/v2/synced-folders/nfs.html)。如果你不使用 Vagrant,你真的应该!
  • 我之前没有听说过 NFS,但我试了一下。我正在使用 Vagrant,所以设置起来非常容易。 NFS 的性能要好得多......大约 2.6 秒而不是 5.9 秒。感谢您的建议!

标签: node.js npm virtualbox vagrant zombie.js


【解决方案1】:

Mitchell Hashimoto(vagrant 的开发者)整理了一些 test results that show the speeds of different virtual machine file systems。长话短说,本机(非共享文件夹)>>>>>> NFS >> Virtual Box 共享文件夹。

所以切换到 NFS 是一个很好的改进。但是,最新版本的 Vagrant 添加了对Rsync Synced Folders 的支持。使用它们与普通共享文件夹略有不同,但好处是在 VM 文件系统中的访问速度非常快。应该和他第一篇博文中报道的“Native Virtual Box”性能相当。

【讨论】:

  • Rsync 创造了奇迹。它不仅解决了 Zombie 的性能下降问题,而且加快了我没有注意到的一切缓慢的速度。谢谢!
猜你喜欢
  • 2011-09-12
  • 2014-05-13
  • 1970-01-01
  • 2015-05-16
  • 2019-08-18
  • 1970-01-01
  • 2017-08-03
  • 2013-09-12
  • 2017-09-15
相关资源
最近更新 更多