系统莫名其妙的内存使用很高,但是通过常规的手段,top、ps……之类的命令均没有发生占用内存较多的问题。
如图:
内存的使用已经达6G,但是通过ps_mem查看到的进程使用内存,只有56.3M。那么到底是差在哪部分呢?
常规的排查方式都排查完后,突然想到一个问题,是不是系统用到大页了呢?
竟然真的是大页,分配了2775页,每页的大小2048KB,共计申请内存 5683200。正好是占用的共内存相差很小。
问题原因找到,那么我们该如何解决呢?临时的解决方法:
echo 0 > /proc/sys/vm/nr_hugepages //建议在释放大页前,执行fsync/sync 同步数据到磁盘
如何永久关闭大页:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag