问题摘要:有什么办法可以降低ratarmount的内存使用率吗?哪些因素影响内存使用(焦油大小除外)?
编辑/澄清问题:我可以使用什么方法将驻留内存减少到最低限度?
我的情况:
- 我正在使用 Ratarmount 来挂载大量 tar 文件(例如,800gb 是我拥有的最大的文件)。
- 我有一台配备 6x6tb 驱动器、20 个内核和 256GB 内存的服务器。
- 我安装了大约 20-25tb 的此类 tar 文件
- 安装了上述数量的 tar 文件后,我的服务器上的 RAM 达到了最大容量 ~250gb
- tar 文件有大量(可能数亿)小文件和文件夹。
我的问题: Ratarmount 现在已经达到了 240GB 的内存使用量,几乎耗尽了我服务器的内存。我还需要安装另外 5-10tb 的 tar 文件。
这似乎与它使用的内存量有点不一致。例如,第一次挂载时,它最终会比从索引文件挂载时使用更多的内存。对于我来说,我可以尝试什么来降低效率,这对我来说有点神秘。对任何想法持开放态度。我需要将内存使用量减少约 25% 才能完成我的项目。
边注... 我看到了该用户创建了拉塔山。这是一个非常棒的程序,完全拯救了我,但我不知道如何联系他,也不知道什么是联系这里或 github 上的人的既定/可接受的方式
答案1
我刚刚ratarmount
用10M文件的文件进行了测试。如果您不主动stat
处理所有文件,ratarmount
最终将被换出。
因此,一个非常简单的解决方案是向服务器添加交换空间。如果使用,zswap
您甚至可以避免接触物理磁盘。
我还证实了您的观察结果,即进行索引+安装比简单地进行安装需要更多的内存。这意味着存在内存泄漏ratarmount
(可能是数据结构被复制并且不需要的副本没有被破坏)。因此,您可以通过索引+挂载,然后立即卸载,然后再次挂载来最大限度地减少数据使用。