在网络映射驱动器上运行批处理脚本的瓶颈

在网络映射驱动器上运行批处理脚本的瓶颈

因此我一直在尝试运行一个脚本,该脚本对 Windows 10 中映射网络驱动器上的中型视频文件执行各种操作。

网络驱动器是 ReadyNAS 104 上的共享文件夹。脚本正在我的本地机器上运行。它执行的操作通常是文件重命名、通过 ffmpeg 进行格式转换以及页眉/页脚读取/写入。

我遇到的问题是批处理脚本几乎只使用了 5% 的 CPU 和 ~150kBps 的网络(编辑:再次查看,似乎它始终接近 120kB/s 的上传和下载速度)。有很多文件需要运行,这意味着需要很长时间。我估计需要几周才能完成所有工作。考虑到两个设备都在一个局域网上,并且计算机有 8 个核心可以工作,这令人沮丧。

我尝试过更改相关进程的优先级(似乎在正常和高之间没有效果)。我还尝试过在子文件夹上运行大约 30 个脚本实例,当文件需要转换时,多个 ffmpeg 实例运行时,利用率只会略有上升(利用率从未真正超过 30%)。

我听说 SMB 重新认证可能会减慢速度,并且根据线程,我尝试修改注册表来修复它(没有效果)。

我可以理解映射的网络驱动器是这个过程的瓶颈(而且我确实看到从系统进程到 NAS 网络地址的连接中传输速率恒定、低至 150kBps),但我没想到网络利用率会这么差,因为我能够以接近 16mBps 或更高的速度通过同一个驱动器传输单个文件。

关于我可以尝试加快进程的任何建议?该脚本不是我的,而且已经运行了大约 5 天,因此除非有好的线索,否则我不愿意做任何需要我重新启动它的事情,但总体而言我愿意接受任何建议,因为我将来可能会再次运行此进程。

谢谢!

编辑 2:在高优先级下运行了大约半天后,今晚再次检查。现在它突然使用了相当合理的 2.5mBps 和 35% 的 CPU。仍然很低,但不是那么低。但真的不知道该如何解释这种行为!从 NAS 复制文件然后再复制回来可能比使用映射网络驱动器更快(尽管我很想知道为什么)。

答案1

回答我自己的问题,因为我意识到我是个白痴。在开始这个过程之前,我在 NAS 中安装了一个新硬盘。它是 4TB,花了很长时间才与我的 RAID-X 同步。今天同步完成了,现在我的带宽和 CPU 达到了我的预期。显然,当这个过程正在进行时,整个 NAS 的速度会严重下降。

相关内容