1. 选择高性能存储设备并将虚拟机文件放在SSD上
将虚拟机的虚拟硬盘(VDI/VMDK/VHD)文件存放在SSD(尤其是NVMe接口)而非机械硬盘(HDD)上,可显著提升读写速度。NVMe SSD的随机读写性能远优于SATA SSD和HDD,能有效减少虚拟机启动、应用加载及文件操作的延迟。
2. 使用固定大小的虚拟硬盘而非动态分配
动态分配的虚拟硬盘虽能节省宿主机空间,但会随着数据增长频繁调整文件大小,导致性能波动。固定大小的虚拟硬盘在创建时即分配全部空间,避免了动态扩展的开销,性能更稳定。创建时可选择“固定大小”选项,并根据虚拟机需求设置合适容量。
3. 启用VirtualBox主机I/O缓存
在VirtualBox存储设置中,为虚拟机磁盘启用“使用主机I/O缓存”功能。该功能允许宿主机操作系统缓存磁盘读写操作,减少直接访问物理磁盘的次数,提升IO吞吐量。尤其适用于频繁读写的场景(如数据库、开发编译)。
4. 优化VirtualBox磁盘控制器类型
选择性能更好的磁盘控制器,如LSI Logic SAS或AHCI(默认是IDE)。LSI Logic SAS控制器支持更高的IO吞吐量和更低的延迟,适合需要高性能存储的场景;AHCI则支持NCQ(原生命令队列),进一步提升多任务下的磁盘性能。
5. 安装VirtualBox增强功能(Guest Additions)
在Ubuntu虚拟机中安装VirtualBox增强功能(通过“设备→安装增强功能”),可优化虚拟机与宿主机之间的存储交互。增强功能包括改进的文件共享、图形加速及IO性能优化,能显著提升存储操作效率。
6. 调整Ubuntu系统存储配置
cat /sys/block/sda/queue/scheduler
查看当前算法,使用echo deadline > /sys/block/sda/queue/scheduler
切换(需root权限)。/var/log
)、缓存(~/.cache
)及无用软件包,释放磁盘空间。可使用apt autoremove
删除无用软件,journalctl --vacuum-size=100M
清理日志,bleachbit
工具清理临时文件。7. 合理分配虚拟机资源
为虚拟机分配足够的CPU核心(根据宿主机核心数,建议1-4核)和内存(建议4-8GB,根据Ubuntu使用场景调整),避免资源不足导致存储IO成为瓶颈。例如,运行开发环境或数据库时,增加内存可减少磁盘交换(swap)操作,提升整体性能。
8. 避免多个虚拟机共享同一物理磁盘
若宿主机同时运行多个虚拟机,将每个虚拟机的存储文件放在不同的物理磁盘上,可减少磁盘争用。例如,将工作虚拟机放在SSD,娱乐虚拟机放在HDD,或使用不同SSD分别存放不同虚拟机文件。