![在永远不会运行 kvm guest 的裸机上禁用 kvm 模块有什么好处吗?](https://linux22.com/image/226475/%E5%9C%A8%E6%B0%B8%E8%BF%9C%E4%B8%8D%E4%BC%9A%E8%BF%90%E8%A1%8C%20kvm%20guest%20%E7%9A%84%E8%A3%B8%E6%9C%BA%E4%B8%8A%E7%A6%81%E7%94%A8%20kvm%20%E6%A8%A1%E5%9D%97%E6%9C%89%E4%BB%80%E4%B9%88%E5%A5%BD%E5%A4%84%E5%90%97%EF%BC%9F.png)
在此过程中,嵌套的 kvm 内核模块默认启用。尽管在当今时代可能很难相信,但并不是世界上的每个人都需要在每台构建的主机上运行 kvm。即使您部署 kvm 的意愿为零,启用此默认设置是否会产生任何性能成本?我对这个主题的所有谷歌搜索都没有提供有关此模块存在的优点/缺点的有用信息 - 性能、安全性或任何其他潜在影响。
或者,这只是“如果它没有坏,就不要修理它”的情况吗?
答案1
或者,这只是“如果它没有坏,就不要修理它”的情况吗?
我会同意的:)
模块在那里没有任何成本。那里可能是启用该功能的 CPU 的成本(在某些较旧的 x86_64 上,您可以在 UEFI 设置中禁用该功能,不确定现代机器上是否仍然如此),即嵌套页表当然会添加一层页表重定向。但是看到您只为该重定向使用单个值:这是无效的。
一旦您考虑仅在启用虚拟化时才能工作的功能(主要是 IOMMU),事情就会变得更加复杂(如果您实际上使用IOMMU 组,有是较小的性能开销。对于拥有数十亿美元服务器的人来说,放弃这一点还不够;得出自己的结论)。
因此,从某种意义上说,保持加载确实不需要花费任何费用(好吧,模块内存中可能有几千字节)。话又说回来,没有内核也可以正常工作。如果您无论如何都要构建一个精简的内核,那么排除它就可以了。