如何确定将大量文件复制到外部共享文件夹的理想并行Java线程数?

问题描述 投票:1回答:2

将大量文件从四核linux盒复制到外部共享文件夹的并行java线程的理想数量应该是多少?我可以看到,使用单个线程,需要花费大量时间来逐个移动文件。多个线程正在提高复制性能,但我不知道确切的线程数应该是多少。

我正在使用Java executor服务来创建线程池。

java multithreading file-io concurrency
2个回答
4
投票

绝对你应该通过测试来解决这个问题。正如德米特里指出的那样,涉及到很多因素。实际上,CPU几乎肯定不是基于IO和网络的操作的瓶颈。在线程太多之前,您可能会发现事情平稳并且开始变得更糟,但如果您想最小化测试,请使用一些结果的图表来插入对理想值的良好猜测。

为了更好地了解正在使用的内容,请使用度量工具来衡量资源的利用率 - 在这种情况下应包括网络接口流量和磁盘队列长度。


4
投票

只需尝试不同的变体并衡量性能。硬盘和网络速度也存在这样的瓶颈,所以我猜没有明确的答案。

© www.soinside.com 2019 - 2024. All rights reserved.