记一次虚拟机无法开启AES的排错经历
我用 VirtualBox 开了个 Debian 的虚拟机,一直用的都还行,但最近突然发现跑加密的时候,CPU 占用极高,于是乎就测试了下机子的性能。结果一测就测出了一个大问题。
使用 Bench.sh 的测试脚本,AES-NI 和 VM-x/AMD-V 两项全红,怪不得 CPU 占用率那么高
排错经历
踩坑
首先,我就想到可能是我前几天装 Docker Desktop 导致的问题,于是乎就把 WSL 相关文件和 Hyper-V 相关文件全部关了
在 Windows 10 系统下,关闭的方式为 设置 –> 应用 –> 程序和功能 –> 启用或关闭 Windows 功能
繁体中文下为 設定 –> 應用程式 –> 程式和功能 –> 開啟或關閉 Windows 功能
但是关闭之后没有用,而且处理器上的 启用套嵌VT-x/AMD-V
还是灰色的
然后就看到了这篇文章,经过修改,虚拟机上终于…还是双红
于是我就装了台全新的 Debian 虚拟机,然后…还是双红
正解
在翻看 VirtualBox 社区的帖子时,有人提到有可能是有其他的 Windows 虚拟机功能没关闭导致的,于是我又打开设置看了下…TMD 怎么会有个这么隐蔽的功能,属实让人蚌埠住了
在简体中文环境中为 “容器”
关闭这个功能并重启之后,再启动虚拟机测试,AES-NI 功能就正常了
但是 VM-x/AMD-V 还是 Disabled。用 PowerShell 修改之后正常了
将虚拟机关机,然后打开 PowerShell
1 | cd "C:\Program Files\Oracle\VirtualBox" |
一般情况下,VirtualBox 是安装到 C 盘 Program Files 文件夹中的,如果在安装时修改了安装位置,则需要修改上面的目录
把获取到的虚拟机名称复制下来,例如 “Debian 11”
1 | .\VBoxManage.exe modifyvm "Debian 11" --nested-hw-virt on |
给虚拟机开机,问题解决。
我第一次这么喜欢绿色
修复之后,跑加密 CPU 就不再飙高了,妈妈再也不用担心我的虚拟机跑宕机了