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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何确定将大量文件复制到外部共享文件夹的理想并行Java线程数?相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

另一答案

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

以上是关于如何确定将大量文件复制到外部共享文件夹的理想并行Java线程数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中读取和写入字典到外部文件? [复制]

文件怎么复制到虚拟机

如何确定excel文件的字符编码? [复制]

使用 azcopy 进行并行复制

如何将主机的文件传入虚拟机

将大量数据从 Netezza 复制到 Teradata