CPU 处理器与线程数

CPU Processor vs number of threads

当前情况:我使用进程构建器通过 Java 代码执行 Rsync 命令,将一些大文件结构从一台 Linux 机器传输到另一台机器。 执行此Java代码(传输文件)的机器的处理器是八核。

我的观察:当我创建一个并行执行 8 个线程的任务调度程序时,我获得了最大的传输速度。 (很有说服力,因为我使用的是八核处理器)

我想要的场景:现在我想用32核处理器的机器来传输文件。我并行使用 32 个线程(固定大小为 32 的线程池) 我问这个问题是因为我没有 32 核机器,无法执行 test.Adding 一个更复杂的操作,有 4 台机器并行,这使得我传输数据的总线程 128.The 机器只有一台。

问题:传输速度方面的性能会得到提升吗?考虑目标机器是否有任何因素会限制我的传输速度?

"When I create a task scheduler which executes 8 threads in parallel, I get maximum speed for transfer...Now I want to use 32 core processor machine to transfer files...Will I get improved performance in terms of transfer speed? Is there any factor considering target machine which will limit my transfer speed?

性能提升:主要瓶颈是网络带宽,而不是计算能力。但是,如果 rsync 使用压缩,那么是的,使用更多计算(更多并行线程)可能会有所帮助。在您的情况下,更多 CPU 提供了更多的吞吐量,所以让我们假设这会发生

其他因素:

  • 发送端带宽
  • 您在
  • 接收的 DC 的带宽
  • 如果您真的很在意它,那么内存使用可能是个问题,请参阅 How can I limit the cache used by copying so there is still memory available for other cache?