V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zwyyy456
V2EX  ›  macOS

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

  •  
  •   zwyyy456 · 2023-11-27 15:48:15 +08:00 · 1718 次点击
    这是一个创建于 369 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    10 条回复    2023-11-28 07:37:22 +08:00
    daveh
        1
    daveh  
       2023-11-27 16:52:10 +08:00 via iPhone
    用 dd 命令自己测。
    一般差个 10 倍以上,对 JB 系 IDE 影响较大,当然写个 hello world 还能接受。
    noahhhh
        2
    noahhhh  
       2023-11-27 16:55:03 +08:00 via Android
    orbstack 是 wsl1 形式,wsl2 才有你说的问题
    Twnysta
        3
    Twnysta  
       2023-11-27 16:58:29 +08:00
    orbstack 的文件 i/o 性能可以,大概是 gRPC FUSE 的四倍。跟 virtioFS 的速度差不多
    daveh
        4
    daveh  
       2023-11-27 17:08:40 +08:00 via iPhone
    @noahhhh #2 orbstack 是类似 WSL 2 ,比如需要自定义 Linux kernel ,利用了 OS 的虚拟化能力,需要独立的磁盘镜像。
    zwyyy456
        5
    zwyyy456  
    OP
       2023-11-27 17:26:59 +08:00
    @Twnysta 这个文件 i/o 性能是跨文件系统的,还是说 orbstack 创建的虚拟机内部的性能?
    tylinux
        6
    tylinux  
       2023-11-27 17:39:25 +08:00
    命令: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
        7
    exkernel  
       2023-11-27 18:34:13 +08:00
    更大问题应该是零散小文件性能
    fkdog
        8
    fkdog  
       2023-11-27 21:35:33 +08:00
    @tylinux 4m 没有意义的,
    你应该测下随机 4k 。
    fkdog
        9
    fkdog  
       2023-11-27 21:40:57 +08:00
    是很差,没事建议不要随便尝试跨系统访问文件。

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

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

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

    如果你真想折腾 wsl2 做开发,目前我折腾一圈发现现阶段最优解就是 vscode 。
    noahhhh
        10
    noahhhh  
       2023-11-28 07:37:22 +08:00 via Android
    @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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2520 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:51 · PVG 13:51 · LAX 21:51 · JFK 00:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.