很多带有Node.js的Inode

时间:2016-04-19 06:49:14

标签: linux node.js npm npm-install inode

这是一个与编程相关的问题,但更多的是在服务器管理方面。

我有一个256K INode可用的服务器(这应该足够了),但另一方面,我有5个项目在这个服务器上运行,有很多节点依赖(以及许多嵌套依赖)。通过这5个项目中的npm install,我使用了所有可用inode的70%(准确地说是251844的176215)。

我的问题是:

有没有办法压缩节点deps?为每个文件提供更多数据但文件更少?

由于

1 个答案:

答案 0 :(得分:2)

我不知道减少node_modules中文件数量的自动方式(这是npm存储其依赖项的地方。)但是,我可以考虑一些减少inode使用的选项。

1)如果这些项目之间存在共享的依赖关系(具有相同的版本号),则可以将一个项目中的某些依赖项符号链接到另一个项目。如果你得到一个包含大量嵌套依赖项的依赖项,这确实可以节省不少的inode。 (另)

2)如果存在大量共享依赖关系,另一种方法是将项目1的node_modules复制到项目2并使用cp -l。在这种情况下,每个副本都是同一文件的硬链接,而不是使用任何其他inode。之后,运行npm install&& npm在项目2中修剪以下载任何更改/其他依赖项。 (也未经测试)

3)然而,这两个选项都是hacky,并且可能会或者可能不会在以后复制,恢复备份等后给你难以调试的问题。真正的解决方案是重新创建文件系统有更多的inode。对于ext4,可以使用mkfs.ext4 -i完成。请参阅https://unix.stackexchange.com/questions/26598/how-can-i-increase-the-number-of-inodes-in-an-ext4-filesystem

相关问题