关于 orbstack 与 wsl 的跨文件系统访问的具体性能

163 天前
 zwyyy456

一直看到这样说法,就是 wsl 的跨文件系统访问很慢,例如 windows 访问 wsl 中的数据,或者 wsl 直接访问 windows 中的数据,文件 I/O 性能非常差。

orbstack 创建的虚拟机和 macOS 之间的跨文件系统访问是不是也很慢?

关于 wsl 和 windows 之间跨文件系统访问,以及 macOS 和 orbstack 创建的虚拟机之间的跨文件系统访问,有 v 友做过具体的性能测试吗?对于个人的 C++ 和 Java 小项目的编写,其性能够用吗?

1315 次点击
所在节点    macOS
10 条回复
daveh
163 天前
用 dd 命令自己测。
一般差个 10 倍以上,对 JB 系 IDE 影响较大,当然写个 hello world 还能接受。
noahhhh
163 天前
orbstack 是 wsl1 形式,wsl2 才有你说的问题
Twnysta
163 天前
orbstack 的文件 i/o 性能可以,大概是 gRPC FUSE 的四倍。跟 virtioFS 的速度差不多
daveh
163 天前
@noahhhh #2 orbstack 是类似 WSL 2 ,比如需要自定义 Linux kernel ,利用了 OS 的虚拟化能力,需要独立的磁盘镜像。
zwyyy456
163 天前
@Twnysta 这个文件 i/o 性能是跨文件系统的,还是说 orbstack 创建的虚拟机内部的性能?
tylinux
163 天前
命令:dd if=/dev/random of=1.bin bs=4M count=1024
在 orb 根目录写:449 MB/s
在 orb 中写 macOS 用户目录:366 MB/s
在 macOS 中写:756 MB/s

单次运行,仅供参考
exkernel
163 天前
更大问题应该是零散小文件性能
fkdog
162 天前
@tylinux 4m 没有意义的,
你应该测下随机 4k 。
fkdog
162 天前
是很差,没事建议不要随便尝试跨系统访问文件。

我曾经想把 idea 里所有开发工具和 sdk 全部切换到 wsl2 内置的,结果就是卡到爆炸。
wsl2 内的 jdk 和 git 访问 windows 文件系统里的项目,卡爆。
wsl2 内的 jdk 和 git 访问 wsl2 里的项目,依然更卡。

后边用 jetbrain gateway 连接 wsl2 做远程开发,结果尼玛这玩意各种无响应卡死,根本没法用。

最后就是老老实实在 windows 上安装好开发工具,然后用 git bash mingw64 做 terminal ,基本也能和 linux 无缝衔接。

如果你真想折腾 wsl2 做开发,目前我折腾一圈发现现阶段最优解就是 vscode 。
noahhhh
162 天前
@fkdog 例外情况(使用 WSL 1 而不是 WSL 2 )
我们建议使用 WSL 2 ,因为它提供更快的性能和 100% 的系统调用兼容性。 但是,在某些特定情况下,你可能会更倾向于使用 WSL 1 。 在以下情况下,请考虑使用 WSL 1:

你的项目文件必须存储在 Windows 文件系统中。WSL 1 可以更快地访问从 Windows 装载的文件。
如果你将使用 WSL Linux 分发版来访问 Windows 文件系统上的项目文件,并且这些文件无法存储在 Linux 文件系统上,那么,通过使用 WSL 1 ,你将跨 OS 文件系统实现更快的性能。
一个项目要求对相同的文件使用 Windows 和 Linux 工具进行交叉编译。
在 WSL 1 中,跨 Windows 和 Linux 操作系统的文件性能比 WSL 2 中更快,因此如果要使用 Windows 应用程序来访问 Linux 文件,则目前通过 WSL 1 可实现更快的性能。

来源:https://learn.microsoft.com/zh-cn/windows/wsl/compare-versions

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/995615

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX