如果虚拟机管理程序操作系统正在执行磁盘缓冲区缓存,那么在虚拟机中执行磁盘缓冲区缓存还有什么意义吗?我想知道虚拟机中的缓冲是否只会浪费本来可以更好地分配给虚拟机使用的内存,或者数据读取是否会在虚拟机管理程序和来宾操作系统中进行缓冲。
或者是否有一些系统可以自动处理虚拟机管理程序和来宾之间的缓冲区缓存协调?
我应该在主机还是虚拟机中将其关闭?
答案1
变量太多,您没有说明您的工作负载、文件系统、存储规格、主机或来宾组合,尽管即使您这样做了,我可能仍然只是概括;-) 作为一组指南:
- 没有什么比务实阅读供应商文档更重要的了和经验证据。 vmware 尤其具有有用且全面的白皮书
- 每个来宾应该对缓存什么有最好的概念,例如文件系统元数据可能更有用,只有来宾可以准确地预读,所以来宾缓存应该更有效
- 如果您有重复数据删除存储,则虚拟机主机缓存可能对某些工作负载更有效
- 如果你过度使用内存,那么一切都会失败
- 内存总是比旋转的 Rust 更快,SAN 可能会让这一点不那么明显
理论上,虚拟机来宾存储驱动程序可以与主机智能通信以优化缓冲,我不知道任何具体实现。
你可以大概如果额外的内存有助于提高来宾性能,则可以通过减少虚拟机主机缓冲来受益。如果没有测量,您就无法确定,因此:测量、分析、调整、根据需要重复。