为什么当 Transmission 完成下载时 CPU 使用率会突然飙升?

为什么当 Transmission 完成下载时 CPU 使用率会突然飙升?

我在观看视频时注意到了这一点,下载完成前不久开始延迟,直到下载完成后不久。第二次我使用监控它时top,CPU 上升到 100% 以上。

我的处理器并不慢(Intel Core i7-3630QM 四核),Transmission 的“平均”CPU 使用率为 3% - 4%。

我想知道这种好奇心的原因是什么以及我能做些什么(除了使用另一个 bit-torrent 客户端)。

答案1

通常,当您尝试观看视频时,视频播放器将需要一些时间来加载播放视频所需的库,经过正确解码后,视频才能正常播放。因此,无论您因加载视频库和解码视频播放而感觉到的短暂滞后如何。

在执行任何数据操作时,CPU 都会消耗其最大可用内存。因此,每当您的 Transmission 完成下载时,它都需要在显示状态为“已完成”之前检查数据。

我认为对于这两种情况的解释可以帮助您理解这个问题,:)

答案2

我猜想 deluge(另一个 torrent 客户端)做同样事情的原因是一样的。当它完成下载时,它会使用哈希算法来检查文件的完整性,并确保下载的文件没有问题。换句话说,它会检查下载的文件是否与其他客户端中的文件 100% 相同。哈希是一个耗费 CPU 的过程,特别是当我们处理较大的文件时。就我而言,我有一台英特尔 i3(不是顶级的,但 CPU 相当不错),检查每 GB 大约需要 1 分钟。这也可能取决于文件的数量,因为哈希是按文件进行的(如果您有几 GB 的多个小档案,则需要更长时间)。我不会担心它,这是 bittorrent 协议的一个很好的功能,禁用它是不值得的(您最终可能会得到无法正常工作的 iso 和损坏的视频文件)。

希望能帮助到你。

答案3

如今,大多数计算机都使用 CPU 中断来控制磁盘控制器。当 Transmission 完成传输时,文件的所有未写入部分都会同时写入磁盘。这会占用更多 CPU,因为磁盘会非常忙于执行所有这些写入操作。

相关内容