![如何在 Linux 中禁用 VirtualBox 的交换?](https://linux22.com/image/799203/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%AD%E7%A6%81%E7%94%A8%20VirtualBox%20%E7%9A%84%E4%BA%A4%E6%8D%A2%EF%BC%9F.png)
如果我错了,请纠正我。我认为 VirtualBox 和任何其他应用程序一样,如果使用了太多内存,就会被交换到磁盘。有没有办法强制系统始终将所有 VirtualBox 进程保留在内存中?
答案1
有什么方法可以强制系统始终将所有 VirtualBox 进程保存在内存中?
有mlock(2)它“将调用进程的部分或全部虚拟地址空间锁定到 RAM 中,从而防止该内存被分页到交换区域”。如果您设法从 VirtualBox 调用它,那么它就可以做到,是的。
答案2
为主机操作系统和虚拟机提供足够的 RAM,并将 swappiness 值设置为零。
在客户虚拟机中,关闭交换文件。这可能看起来不太明显,但正是客户操作系统及其应用程序使 VirtualBox 使用 RAM,并且客户操作系统也会分页到磁盘(或虚拟磁盘 - 速度相当慢)。
关键是要为主机和客户虚拟机提供足够的 RAM。