登录 立即注册

首页 > 绿虎论坛 > 电脑 > Windows (发帖)

标题: Win11 24H2 如何关闭 VBS 并保留 WSL2 呢?

作者: @Ta

时间: 06-02 19:24

点击: 2042

我在 Ubuntu 25.04 上,编译了 Svt-av1-psy 来转码影片。

同样二进制文件,在 Win11 的 WSL1 / WSL2 运行,速度慢了 9%。

不想频繁切换系统来转码。听说 VBS 性能损失很大,网上查关闭教程,但看起来都会导致 WSL2 不可用?


[隐藏样式|查看源码]


『回复列表(28|隐藏机器人聊天)』

1. 【如何科学地关闭VBS并与Windows Subsystem全家桶共存-哔哩哔哩】 https://b23.tv/6d6rgXv

未经测试
(/@Ta/2025-06-03 04:22//)

2. @无名啊,通过组策略禁用C:\Windows\system32\wscript.exe,我电脑都这样设置,可以使一部分开机自启病毒失效。
(/@Ta/2025-06-03 06:36//)

3.

@tasy5kg,居然还要修改启动引导,好复杂。。而且重启还失效。。

(/@Ta/2025-06-03 22:55//)

4.

@hui214,你是说 Visual Basic Script 吗?

看来英语缩写容易引起歧义。。

上面是指 Virtualization-Based Security(基于虚拟化的安全),整个 Win11 默认是跑在虚拟机里的。。

(/@Ta/2025-06-03 23:00//)

5.

@无名啊,在Windows Defender里把“内核隔离”里面的“内存完整性”选项关闭就行了,找不到就在设置里搜“内核隔离”或者“核心隔离”(旧版本说法)。关了这个之后其他虚拟化安全功能都会被禁用,但是Hyper-V和WSL2都可以继续使用。

如果本来就处于关闭状态,说明你本来就没开基于虚拟化的安全。打开虚拟化和Hyper-V功能不代表打开了“基于虚拟化的安全”。后者只有全新安装才会自动启用,升级安装后默认是关闭的。

(/@Ta/2025-06-03 23:08//)

6.

图中这两个选项就是所谓的“基于虚拟化的安全”:
image.png(80.61 KB)

(/@Ta/2025-06-03 23:10//)

7.

参考文档:https://learn.microsoft.com/zh-cn/windows-hardware/design/device-experiences/oem-vbs

基于虚拟化的安全功能(VBS)使用硬件虚拟化和 Windows 虚拟机监控程序来创建独立的虚拟环境,该环境将成为假定内核遭到入侵的 OS 的信任根。

其中一个安全解决方案是内存完整性,它通过在 VBS 的隔离虚拟环境中运行内核模式代码完整性来保护和强化 Windows。


VBS 要求以下组件存在并得到正确配置:

安全启动:必须在利用 VBS 的设备上启用安全启动。


所以关闭核心隔离再关闭安全启动就不用担心VBS会生效了。

(/@Ta/2025-06-03 23:16//)

8.

@无名啊,我确实以为你想关闭的是Visual Basic Script,所以我才一直没有回答。

(/@Ta/2025-06-03 23:13//)

9.

@老虎会游泳,是这样吗?VBS 还是开着的。。

屏幕截图 2025-06-03 231331.webp(127.48 KB)

(/@Ta/2025-06-03 23:15//)

10.

@无名啊,内核隔离是“基于虚拟化的安全”中唯一会影响性能的部分,关闭它就行了。其他功能主要是和固件签名验证、安全启动等有关,不会影响性能。

被个别媒体引述为“性能降低达37.7%”的也只是内核隔离功能,该功能会在新装的Windows里默认启用,带来了性能影响,媒体也只是将该功能关闭就恢复了性能。

(/@Ta/2025-06-03 23:21//)

11.

@老虎会游泳,我在 0 楼测的《Win11 比 Ubuntu 慢 9%》,就是在 9 楼情况下测的。。

9 楼的情况,在我一开始装内存盘软件时,就要求那样了。。(关闭内存完整性)

屏幕截图 2025-06-03 232414.webp(72.9 KB)

(/@Ta/2025-06-03 23:25//)

12.

@无名啊,同时运行两个系统肯定会比只运行一个系统慢啊,这不是理所当然的吗?除非你能完全关闭主控Windows,只在hyper-v里运行WSL2,才能达到和裸机运行Linux接近的性能(还是会有微量性能损失,因为hyper-v虚拟机监控程序也要分走一部分CPU)。

(/@Ta/2025-06-03 23:39//)

13.

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慢的。

(/@Ta/2025-06-03 23:44//)

14.

@老虎会游泳,0 楼也测了 WSL1,此时 WSL2 是关闭的,但结果都是比 Ubuntu 慢了 9%。。

猜测此时 WSL1 实际也是虚拟机中的,所以和 WSL2 速度一样。。

所以我才想关掉 VBS,这样 Win11 裸机跑,WSL2 还是虚拟化,速度应该就差不多了。。

(/@Ta/2025-06-03 23:43//)

15.

@无名啊,你在BIOS里把虚拟化功能关闭,WSL1还是能用的,VBS也会变成未启用,你再去测一下就能知道hyper-v带来的影响是多大了。WSL1的问题在于微软写的Windows/Linux系统调用翻译层本来就性能不好,怪不了hyper-v。

(/@Ta/2025-06-03 23:51//)

16.

@无名啊,> WSL1 / WSL2 运行,速度慢了 9%

这说明你的应用是一个存粹的CPU密集型应用啊,完全没有IO瓶颈,所以WSL1和WSL2的性能才接近。只要有一点IO压力,WSL1的性能就会远低于WSL2了,因为Windows/Linux翻译层的IO性能远低于虚拟机中的原生Linux内核,并且还有偶发的死锁问题。

(/@Ta/2025-06-03 23:52//)

17.

@老虎会游泳,有空我测下,BIOS 关虚拟化,裸机跑 Win11,WSL1 里提升多少吧。。

感觉 CPU 密集型应用,应该不会有多少 syscall 吧。。而且转码影片才几十 MB,应该没有 IO 损耗问题。。


要不我在 Win 也原生编译一下。老虎你经验里,哪个编译器效率更高呢?MSVC?msys2?还是其他啥呢?

当时我在 Ubuntu 测试,Clang 20 编译的 svt-av1-psy,比 GCC 14 快 13% 左右。。

(/@Ta/2025-06-03 23:58//)

18.

@无名啊,哦对了,说起来,CPU密集型应用也不会受到虚拟化安全的性能影响啊。虚拟化安全影响的主要是系统调用速度和IO速度。。。

纯计算类应用在计算的时候根本不会经过任何安全检查代码。安全检查都是设置在系统调用和IO控制操作附近的。

(/@Ta/2025-06-04 00:04//)

19.

@老虎会游泳,会不会是内存寻址多了几层,导致慢了。。

转码时还是要占几 GB 内存的。。

(/@Ta/2025-06-04 00:05//)

下一页 1/2页,共28楼

回复需要登录

6月8日 13:21 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1