Hacker News 中文摘要

RSS订阅

WSL 2将获得更快的Windows文件系统访问 -- WSL 2 is getting faster Windows file system access

文章摘要

WSL 2通过为每个virtio设备分配独立DMA池,解决了virtiofs路径上的主要性能瓶颈,显著提升了Windows与Linux系统间的文件访问速度。这是继WSL 1的DrvFs和Plan 9之后,跨系统文件访问性能的又一次重要改进。

文章总结

标题:WSL 2实现更快的Windows文件系统访问

主要内容: 1. 性能提升 - WSL 2通过为每个virtio设备分配独立DMA池(PR #40654),消除了virtiofs路径上的最后一个主要竞争点 - 该优化需要Microsoft.WSL.Kernel 6.18.26.3-1及以上版本内核支持

  1. 技术演进历程
  • WSL 1(2016):通过DrvFs直接访问NTFS,文件操作性能优异
  • WSL 2(2019):采用Hyper-V轻量级VM方案,通过Plan 9(9P)协议实现跨系统文件访问
  • 2021年:引入实验性virtiofs方案,通过共享内存减少序列化开销
  1. 技术细节
  • 原方案:所有virtio设备共享单一SWIOTLB缓冲池(4GB DMA边界下的保留内存区域)
  • 新方案:内核启动时分配连续物理内存,通过sysfs暴露地址,为每个设备创建独立缓冲池
  1. 实际应用建议
  • 在.wslconfig中设置virtiofs=true
  • 通过wsl.exe --update更新到最新内核
  • 保持WSL 2会话内存大于1GB(SWIOTLB池需至少64MB空间)
  • 主要受益场景:Windows驱动器存储但需在Linux构建的项目(如C:\Users\code下的cargo/npm/mvn操作)
  1. 当前状态
  • 默认仍使用基于Hyper-V套接字的Plan 9协议
  • virtiofs仍为可选功能
  • 开发工作持续在github.com/microsoft/WSL公开进行

(注:已移除技术细节中的部分协议说明和PR引用等次要信息,保留核心演进脉络和实用建议)

评论总结

以下是评论内容的总结,按主要观点分类:

  1. 性能改进期待与疑问

    • 用户询问速度提升的具体数据:"I can’t find any benchmarks...anyone have a sense of the speedup?" (评论1)
    • 有用户表示若改进如首次重大更新般显著,将接近原生性能:"If it is as good...it will be hard to tell from native" (评论2)
  2. 文件系统问题

    • 多数用户批评WSL2文件系统性能差:"WSL singlehandedly stemmed...but WSL native filesystem performance gave devs that magical experience" (评论6)
    • 解决方案建议:使用EXT4卷可提升速度:"keeping your stuff on a separate EXT4 volume...is much faster" (评论19)
  3. WSL1与WSL2对比

    • WSL1被赞性能优异:"WSL1 was really really fast!" (评论17)
    • WSL2因虚拟化导致性能下降:"WSL2 came along...fs performance took a shit" (评论17)
  4. 转向Linux的趋势

    • 文件性能问题促使开发者转向Linux:"Proton, Copilot...pushed people to Linux" (评论6)
    • AI工具降低Linux使用门槛:"LLMs made most of the downsides...go away" (评论5)
  5. 正面评价

    • 部分用户满意现有方案:"WSL is great. I like it" (评论11)
    • 已观察到启动速度提升:"saw faster WSL launches straight away" (评论20)
  6. 其他技术问题

    • USB设备共享问题:"incredibly janky way...share USB peripherals" (评论12)
    • 跨文件系统交互困难:"too many problems interfacing across filesystems" (评论8)

关键矛盾点集中在文件系统性能差异(WSL1 vs WSL2)和由此引发的平台迁移趋势,同时存在对WSL实用价值的肯定。