我在两台不同的服务器上运行了 bonnie++ v1.96,没有任何额外负载。一台服务器是具有 32GB RAM 的“物理”戴尔服务器,另一台服务器是具有 14GB RAM 的虚拟实例。我在 bonnie 手册中读到,在 bonnie 运行中我应该使用两倍大小的 RAM,因此我在物理机上使用 64GB,在虚拟机上使用 28GB。
现在我想比较一下结果,我想知道结果是否完全具有可比性。最有趣的部分是延迟部分 - 在物理机上,该值比虚拟机上的值高出约 10 倍!
我可以认真对待这些结果吗(例如虚拟机 HD 要快得多)或者不同的 RAM 大小会篡改结果?
谢谢!Jonas
答案1
需要考虑的一个重要问题是,许多虚拟化解决方案都有主机的备用内存,可用于缓存/缓冲区能用于缓存虚拟磁盘文件中的数据。这可能意味着您的虚拟机实际上会发现读取缓存的 RAM 比分配的 RAM 多得多,这对性能产生了影响。
此外,一些环境将允许对虚拟磁盘的写入被缓存延迟,因此,即使虚拟机中的用户空间代码告诉虚拟机中的操作系统“在写入物理磁盘之前不要返回”,虚拟机中的操作系统想它遵守该指令,主机仍可能在数据被物理写入之前使其返回。这可能会对 bonnie++ 等基准测试所测量的响应产生巨大影响。VMWare 有一个选项可以打开/关闭此行为(IIRC 在所有版本中默认为关闭),其他支持 vdisk 操作写入缓冲的操作系统可能也这样做。