【发布时间】: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