播种时 Webtorrent 消耗大量 RAM

问题描述

我在播种 mp4 文件时面临高内存消耗。

我有 1gb 的 mp4 文件

disk memory

和简单的代码

seeder.seed(fileStream,function (torrent) {
    console.log('started seeding %s - %s',torrent.magnetURI,torrent.files[0].name);
});

从这个文件中收集的流的种子。

当执行到达该行时,我将面临大量 RAM 内存消耗。

之前:

enter image description here

之后:

enter image description here

7-8 GIGS 差异!?!

内存消耗正在下降,种子回调执行后 10 秒,减去 2gb,没有那么多。

我看到这个警告:

(节点:26822)MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。 [Torrent] 中添加了 11 个准备就绪的侦听器。采用 发射器.setMaxListeners() 增加限制

但是,我想该库使用了很多(对于节点)侦听器,所以它 收集到我在循环中的某个地方创建它们并警告我 它,所以来源不在这里

这可能是因为我的 PC 使用 ram 磁盘缓存,并且代码保留的不是 RAM,而是 NVram。

但是当我查看 /tmp 文件夹时,我只看到一个 1Gb 的新 Torrent 文件,因此它等于原始文件

enter image description here

所以问题:

  1. 播种启动是如何安排的,我为什么要面对这个,你的想法?
  2. 是否可以在不填充原始文件的情况下为文件做种子,也许它填充文件是因为我使用 webtorrent.File.createReadStream 方法
  3. 文件播种将如何扩展,我需要多少资源来播种 50 个文件,50 倍?你做了一些测试吗?
  4. 将原生 webtorrent-trackers 用于大文件群 (500Gb-1Tr) 是否仍然实际,还是最好自己养?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)