0

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

我有 1gb mp4 文件

磁盘内存

和简单的代码行

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

这为从此文件收集的流播种。

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

前:

在此处输入图像描述

后:

在此处输入图像描述

7-8 GIGS 的差异!?!

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

我看到这个警告:

(节点:26822) MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。[Torrent] 添加了 11 个现成的听众。使用emitter.setMaxListeners() 增加限制

但是,我认为该库用于许多少数(用于节点)侦听器,因此它收集了我在循环中的某处创建它们并警告我,因此源不在这里。

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

但是当我查看/tmp文件夹时,我只看到一个1Gb的新 torrent 文件,所以它等于原始文件。

在此处输入图像描述

所以问题:

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

0 回答 0