当运行一个虚拟机时,vSphere的VMKernel为虚拟机生成一段可编址的连续内存,与普通操作系统提供给上层应用使用的内存具有相同的属性特征。引入内存虚拟化之后,同样的内存地址空间,允许VMkernel同时运行多个虚拟机并保证它们之间使用内存的独立性。
虚拟化平台三种内存模式
主机物理内存(Host Physical Memory)
主机物理内存是ESXi在一个物理主机上检测到的内存值,该值是主机实际物理安装的内存值。
虚拟机物理内存(Guest Physical Memory)
虚拟机操作系统可以看到分配给虚拟机的内存值。
虚拟机虚拟内存(Guest Virtual Memory)
是指虚拟机操作系统分配给应用程序的可用内存,这是虚拟机操作系统映射到虚拟机物理内存的虚拟内存地址空间,是虚拟机操作系统提供给他的应用程序使用的内存地址空间,在非虚拟化环境中也是如此。
内存三种模式的工作方式
vmware vSphere的三层内存映射结构如下图所示:
ESXi主机为其上运行的每个虚拟机创建一个虚拟内存地址空间,这些虚拟内存地址空间向下映射到主机内存地址,向上映射到虚拟机作为虚拟机的物理内存。当应用程序使用完后,虚拟机会将这部分内存标记为“free”,此时其他应用程序可以使用这部分内存,但是虚拟机管理器不会关心这些被标记为“free”的内存,并且认为这些内存一直分配给了虚拟机。也就是说,一旦管理程序

本文介绍了虚拟服务器内存管理,特别是VMware ESXi的内存虚拟化。当虚拟机内存使用完毕,VMkernel不再分配更多内存,而是通过透明页共享、内存膨胀、内存压缩和管理程序内存交换等机制回收。内存膨胀通过vmmemctl驱动回收内存,内存压缩避免磁盘交换影响性能。理解这些机制有助于优化虚拟环境的内存使用。
最低0.47元/天 解锁文章
2473

被折叠的 条评论
为什么被折叠?



