在虚拟机内部允许虚拟内存有什么意见?
例如,一台主机带有8G内存,我可以运行4个虚拟机,每个虚拟机2个千兆(大致),并且不会有主机交换。 但是,在每个虚拟机中,我可以有一个2Gig的页面文件,所以虚拟服务器有4Gig的可用内存,2个物理2个虚拟。
或者…我可以给每个VM 4 Gig的“内存”,让主机使用8Gig的真实内存和8G的虚拟内存,并且在每个虚拟机中都没有页面文件。 每个虚拟机仍然会有“4Gig”,但在主机上会发生分页。
我热情模糊的部分说,设置分页在每个客人就像你会真正的服务器,你很好。 但是我的分析方面看到了过度使用主机内存和在虚拟机中没有分页的两个主要优点。 首先,虚拟内存的IO由主机操作系统处理,而主机操作系统更接近裸机,所以它应该更快。 其次, 如果主机没有可用的内存,则只需要分页。 如果客人想要4Gig,但其他客人没有使用他们的内存,则不需要分页。
思考?
我不是一个虚拟化专家(实际上我认为这是大多数时间这个工作的错误工具),但是从我读的你的客户操作系统不应该被允许交换。 防止交换的主要原因是它代表了一种猜测操作系统占用主机IO带宽很大一部分的方法。
此外,你不想假装你的猜测操作系统的主机有更多的物理内存,因为它会导致主机大量交换,但在猜测操作系统的内部debugging性能问题将是非常困难的,因为从他们的观点的观点,他们不交换,并没有在客人的os级别的工具将显示它。
甚至可能使用像Xen和VmWare这样的工具,因为使用了baloon内存驱动程序,您无法在主机操作系统上过量使用内存。
这在很大程度上取决于主机操作系统上的内存过量的后果。 例如,如果我的Linux内存不足杀手会杀死我的虚拟机,那么我会感到恼火。 我倾向于为每个来宾操作系统留出一个较小的,独立的,预分配的快照独立(如果适用于您的VM解决scheme)虚拟磁盘,确保托pipe该磁盘映像的文件不被分段和/或在快速驱动器上,并configuration来宾交换空间驻留在该虚拟磁盘上。 如今的pipe理程序内存pipe理已经足够好,不会感觉到OOM主机交换和OOM客户交换之间的差异,我可以独立地微调客户行为。 两全其美。
由于IO问题,我不会给你的Guest虚拟内存。 我也不会给你的主机虚拟内存和guest虚拟机太多的物理内存,因为guest虚拟机实际上并没有意识到它使用的是虚拟内存而不是物理内存。
这不会给你任何解决scheme,而是要购买更多的内存。 你真的无法获得更多的内存替代品。 这是如此便宜,如果你的服务器可以支持更多,我会得到更多。