使用free -m命令,发现free状态的内存比available内存要大,应用程序无法全部申请free内存

  • 使用libvirt创建一台kvm虚拟机,
  • 使用free -m命令,发现free状态的内存比available内存要大,应用程序无法全部申请free内存,只能最大申请到available的内存,
  • 麻烦问下,free中不可以被应用程序使用的内存是怎么回事,如何设置修改这一情况 图片说明

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773
MemAvailable = MemFree - LowWaterMark + (PageCache - min(PageCache / 2, LowWaterMark))
看下最低保留内存参数吧
cat /proc/sys/vm/min_free_kbytes

https://www.cnblogs.com/qingergege/p/6550410.html

可以通过进行内存的优化进行实现。

看截图,你没分配swap分区,有的内存没法交换出去,弄个4g的swap分区试试吧