在 Windows 服务器上使用 Linux 子系统搜索的速度问题

在 Windows 服务器上使用 Linux 子系统搜索的速度问题

我正在 Windows 服务器上执行搜索,该服务器与我的 Z:-drive ( ) 有映射\\<servername>\<base_directory>。在那里,我想在子目录内搜索,因此我们得到了Z:\<subdirectory>

除此之外,我在 Windows 计算机上安装了 Linux 子系统,并创建了一个安装点,引用服务器(/mnt/z)。

我通过两种方式在该服务器的子目录内启动搜索:

  • 通过Notepad++在服务器的子目录中搜索“关键字”。
  • 通过我的Linux子系统:<Prompt inside /mnt/z/<subdirectory>> find ./ -name "*.p" -exec grep "keyword" {} /dev/null \;

两者都可以运行并给出正确的结果,但我在速度方面遇到了问题:Notepad++ 的运行速度合理,但我的 Linux 子系统执行相同任务所需的时间很容易就是 10 倍。

这是 Windows 服务器上 Linux 子系统的已知问题吗?或者这是我可以以某种方式处理的问题吗?在这种情况下,该如何处理?

提前致谢

答案1

WSL 中的文件 I/O 似乎特别慢,大概是因为模拟了 Windows 文件系统调用。这个问题一直在改善,但目前还是比较慢。

我有时也会怀疑缓存是否没有发挥应有的作用。我对此没有很好的参考,但 Phoronix 一直在进行基准测试:看这里

很多基准测试确实都没问题,但是 I/O 绑定的东西(比如 sqlite 或编译东西)在 WSL 中(在本地和 SMB 驱动器上)要差 20 倍。

引用:“微软还需要做更多的工作才能使 WSL I/O 性能接近 Linux 存储性能”。

相关内容