我想检查一台虚拟机分配的内存是否多于其所需的内存。如果是这样,想回收一些空闲内存。如何验证呢?从vmware客户端来看,如果一台VM的Guest物理内存使用率不高并且没有发生交换,是否意味着我们可以参考原始内存来调整VM所需的内存?
还有一个关于如何检查一台虚拟机实际内存详细信息(已使用、空闲)的问题?我问,有时主机内存低于虚拟机内存,但从系统来看,总大小是虚拟机内存大小,并且使用的大小大于vSphere客户端的活动内存。
例如:一台虚拟机
来自 vSphere 客户端
VM memory 32768MB, host memory 28343, guest memory% 13%.
来自系统(linux)
[root@ ~]# free -h
total used free shared buff/cache available
Mem: 31G 12G 956M 7.7M 18G 18G
Swap: 1.9G 103M 1.8G
[root@ ~]#
答案1
如果您看到“buff/cache”为 18GB,则超过实际内存的 50%。通常,此值是用于辅助的内存的 15%,或用于应用程序的 20%。
如果您的机器在任何时候需要更多,首先将使用“buff/cache”
Total Memory --> 31GB Real Used --> 12GB 15 % of total Memory for cache --> 5GB Real Used + cache memory = 12GB + 5GB
消耗的主机内存- 主机上使用的机器内存量。消耗的内存包括 包括服务控制台、VMkernel、vSphere 服务使用的内存以及所有正在运行的虚拟机消耗的总指标。
活动访客内存- 主动使用的访客“物理”内存量。
我认为你只需要17GB!如果不想调整那么多可以放20GB
如果您想做出更准确的决定。我建议在系统活动频繁的一周或一天内每分钟使用 vmstat 命令。
本文可以帮助您: https://www.howtoing.com/linux-performance-monitoring-with-vmstat-and-iostat-commands/