在出现磁盘瓶颈的情况下,并发进程是否会降低下载性能?

在出现磁盘瓶颈的情况下,并发进程是否会降低下载性能?

我目前正在使用 1Gbit 连接下载相当大量的数据,预计下载速度约为 125MB/s(这是在同一连接上通过不同的下载实现的)。

当前下载速度约为65MB/s。

我正在尝试使用一个简单的 Python 脚本在 CPU 的 16 个核心中的 15 个上运行 15 个下载进程,试图解决 1) 潜在的(基于连接的)服务器端限制,以及 2) 涉及许多文件和少量处理(校验和、文件验证等),并且我想尽可能保持连接得到充分利用。

可能导致瓶颈的一个因素是 HDD 写入速度 - 它是一个外部 12TB HDD(USB 3.1)5400 RPM。查看 perfmon(Windows 10)中的磁盘队列长度,看起来队列在 30(28-32)左右波动。

我的想法是否正确,多次下载不同的文件(和不同的目录)可能会由于在多个地方写入磁盘而导致整体速度变慢?

如果磁盘队列太长(如本例),是否会导致下载自动限制?协议是 SSL TCP/IP。

答案1

我已经解决了这个问题,现在的速度约为 113MB/s。

驱动器确实是瓶颈,通过在 Windows 中启用磁盘缓存解决了这个问题。默认情况下,外置硬盘驱动器上的缓存功能是禁用的,以便快速移除。

对于偶然发现此问题的任何人,您可以按照 Windows 10 中的以下步骤启用磁盘缓存:

  1. 转到设备管理器 (Ctrl-X)
  2. 展开“磁盘驱动器”部分
  3. 右键单击相关驱动器并选择属性
  4. 转到“政策”标签
  5. 选择‘更好的性能’
  6. 单击“确定”
  7. 重启计算机

相关内容