我正在 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 存储性能”。