找到11148个回复
@无名啊,> WSL1 / WSL2 运行,速度慢了 9%
这说明你的应用是一个存粹的CPU密集型应用啊,完全没有IO瓶颈,所以WSL1和WSL2的性能才接近。只要有一点IO压力,WSL1的性能就会远低于WSL2了,因为Windows/Linux翻译层的IO性能远低于虚拟机中的原生Linux内核,并且还有偶发的死锁问题。
@无名啊,你在BIOS里把虚拟化功能关闭,WSL1还是能用的,VBS也会变成未启用,你再去测一下就能知道hyper-v带来的影响是多大了。WSL1的问题在于微软写的Windows/Linux系统调用翻译层本来就性能不好,怪不了hyper-v。
WSL2是hyper-v中的虚拟机。“虚拟机平台”和“虚拟机监控平台”都是启用hyper-v。
启用hyper-v后,Windows本身也会变成一个运行在hyper-v中的虚拟机,只不过是特权虚拟机,可以直接访问硬件,还能管理其他虚拟机。
所以只要启用了WSL2,Windows本身的性能也会略微下降,因为从裸机运行变成虚拟机内运行加硬件直通了。
但是这就是使用WSL2的代价,这是无法避免的。而且性能下降程度应该不到1%
至于速度慢了 9%,那是因为Windows在和Linux交替运行,在抢走Linux的CPU时间嘛。hyper-v把9%的CPU时间分配给了Windows。
如果要使用Windows NTFS文件系统内的虚拟磁盘,那把CPU时间分配给Windows是不可避免的。除非hyper-v Linux里做硬盘直通,然后完全不和Windows交互,并且Windows直接注销,不登录到桌面,后台服务也尽可能停止运行,才能尽可能不抢走CPU时间,性能才可能和裸机运行Linux接近。
但少了和Windows的互通,就不是WSL2了。
所以WSL2必然是要比裸机运行Linux慢的。
@老虎会游泳,0 楼也测了 WSL1,此时 WSL2 是关闭的,但结果都是比 Ubuntu 慢了 9%。。
猜测此时 WSL1 实际也是虚拟机中的,所以和 WSL2 速度一样。。
所以我才想关掉 VBS,这样 Win11 裸机跑,WSL2 还是虚拟化,速度应该就差不多了。。
@无名啊,同时运行两个系统肯定会比只运行一个系统慢啊,这不是理所当然的吗?除非你能完全关闭主控Windows,只在hyper-v里运行WSL2,才能达到和裸机运行Linux接近的性能(还是会有微量性能损失,因为hyper-v虚拟机监控程序也要分走一部分CPU)。
@无名啊,内核隔离是“基于虚拟化的安全”中唯一会影响性能的部分,关闭它就行了。其他功能主要是和固件签名验证、安全启动等有关,不会影响性能。
被个别媒体引述为“性能降低达37.7%”的也只是内核隔离功能,该功能会在新装的Windows里默认启用,带来了性能影响,媒体也只是将该功能关闭就恢复了性能。
参考文档:https://learn.microsoft.com/zh-cn/windows-hardware/design/device-experiences/oem-vbs
基于虚拟化的安全功能(VBS)使用硬件虚拟化和 Windows 虚拟机监控程序来创建独立的虚拟环境,该环境将成为假定内核遭到入侵的 OS 的信任根。
其中一个安全解决方案是内存完整性,它通过在 VBS 的隔离虚拟环境中运行内核模式代码完整性来保护和强化 Windows。
VBS 要求以下组件存在并得到正确配置:
安全启动:必须在利用 VBS 的设备上启用安全启动。
所以关闭核心隔离再关闭安全启动就不用担心VBS会生效了。
@无名啊,我确实以为你想关闭的是Visual Basic Script,所以我才一直没有回答。
图中这两个选项就是所谓的“基于虚拟化的安全”:
@无名啊,在Windows Defender里把“内核隔离”里面的“内存完整性”选项关闭就行了,找不到就在设置里搜“内核隔离”或者“核心隔离”(旧版本说法)。关了这个之后其他虚拟化安全功能都会被禁用,但是Hyper-V和WSL2都可以继续使用。
如果本来就处于关闭状态,说明你本来就没开基于虚拟化的安全。打开虚拟化和Hyper-V功能不代表打开了“基于虚拟化的安全”。后者只有全新安装才会自动启用,升级安装后默认是关闭的。
@hui214,你是说 Visual Basic Script 吗?
看来英语缩写容易引起歧义。。
上面是指 Virtualization-Based Security(基于虚拟化的安全),整个 Win11 默认是跑在虚拟机里的。。
@听风念,我是每个月14/28号检查一次 超过60天再更新,php+docker(acme) 解决.
php的作用是执行docker并将生成的证书转移到远程主机(ssh直接写入)和阿里云cdn(api接口)
最新版本的Chrom和Edge已经修复此问题,有遇到的可以更新解决
@无名啊,通过组策略禁用C:\Windows\system32\wscript.exe,我电脑都这样设置,可以使一部分开机自启病毒失效。
【如何科学地关闭VBS并与Windows Subsystem全家桶共存-哔哩哔哩】 https://b23.tv/6d6rgXv
未经测试
用户被禁言,发言自动屏蔽。