【问题标题】:CPU Processor vs number of threads [closed]CPU处理器与线程数[关闭]
【发布时间】:2020-07-31 10:18:08
【问题描述】:

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

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

我想要的场景:现在我想使用 32 核处理器的机器来传输文件。我并行使用 32 个线程(固定大小为 32 的线程池) 我问这个问题是因为我没有 32 核机器,无法进行测试。再复杂一点,有 4 台机器并行,使总线程数 128。我正在传输数据的机器只有一台。

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

【问题讨论】:

  • "执行这个 Java 代码(传输文件)的机器的处理器是 8 位的。"你确定吗?您似乎对位和线程之间的区别感到困惑。
  • 看起来您在字长(8 位/32 位)、内核和线程之间存在很多混淆。处理器不太可能成为这方面的瓶颈,您将提前受到网络速度和磁盘读/写的限制。
  • 通常,对于文件传输而言,磁盘和网络速度比 CPU 能力更重要。
  • 这是一个错误....我已经编辑了问题

标签: java linux multithreading rsync processor


【解决方案1】:

“当我创建一个并行执行 8 个线程的任务调度程序时,我获得了最大的传输速度...现在我想使用 32 核处理器的机器来传输文件...我会在传输方面获得改进的性能吗速度?是否有任何考虑目标机器的因素会限制我的传输速度?

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

其他因素:

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 1970-01-01
    • 2014-01-06
    • 2021-11-25
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 2013-12-28
    相关资源
    最近更新 更多