我正在 Hyper-V (W2K12R2) 中使用动态内存测试 CentOS 6.6。我将启动和最小内存设置为 4096MB,最大内存设置为 16384MB。20% 缓冲区大小。
启动后,我可以从 CentOS 看到它的内存大小为 3882MB,而在主机操作系统的 Hyper-V 管理器中内存需求约为 700MB。
然后我尝试创建几个 2GB 的 tmpfs 挂载点并用随机数据填充它们。由于它超过 4GB,客户机操作系统中的内存大小开始增加,我看到内存大小为 5996MB。
然后我从 tmpfs 目录中删除了所有内容,主机操作系统上分配的内存变成了 4096MB,需求内存为 901MB。但 CentOS 中的内存大小仍为 5996MB。内存使用量显示为 2940MB
Mem: 6140300k total, 3903940k used, 2236360k free, 116944k buffers
Swap: 0k total, 0k used, 0k free, 775396k cached
1. 客户操作系统是否会看到内存减少?
2. 如果不应该,我怎样才能从客户操作系统中找出实际内存大小和内存使用情况?
答案1
客户机将保留现有内存,直到客户机重新启动或内存膨胀生效,主机“窃取”部分 RAM(客户机上显示为已使用)。这可能是因为操作系统对突然“丢失”的 RAM 反应不佳(类似于热添加,但删除需要重新启动)。