在构build过程的一个步骤中,我们运行一个可生成大约125,000个文件的工具。 生成完成后,我们将它们复制到networking共享中,以便其他系统可以将它们复制下来以进一步处理。
如果我们必须从networking上执行完整的文件副本,我们会看到性能下降(大约-300%)。 如果我们已经有本地文件,并重新启动系统,性能会很好。
我目前的假设是,Windows有某种文件描述符或文件句柄保持打开状态,副本仍然保留在减慢文件系统密集型任务的速度上。
我们的监测图表并没有显示出太多的不寻常之处,并且大部分与系统运行良好一致……只是需要更长的时间。 在1500线程左右的时间通常要短得多的线程中,速度变慢。
我也应该注意到125k文件都在一个目录中。 我知道这会影响迭代目录列表的性能,但我不确定这个问题将如何发挥作用。

什么是另一端运行? (Windows,Linux,特定的NAS操作系统,…)两端是否使用SMBv2进行文件传输? 目标服务器的性能如何?
如果什么都行不通,你可以尝试把文件压缩到原始系统中的一个文件中,然后传输该文件并在目的地解压缩。