美文网首页
linux 内存cache的释放

linux 内存cache的释放

作者: 猿崛起 | 来源:发表于2018-07-15 22:09 被阅读0次

线上服务器出现了, 内存占用过高, 导致服务器卡顿的情况。 出现问题时的内存占用情况如下图:

memory.PNG

通过上图可以看到, cached内存占用了10G 左右,free memory可用内存大概在192M 左右, 这个时候明显内存已经不够用了, 但是系统并没有自动释放cache page.

在参考了技术文章后,https://linux.cn/article-7310-1.html,有了一个深入的了解。

然后在测试环境做了一个实验:手动释放cache page, 看是否能够释放。


memtest.PNG

得出结论, tomcat服务器所占用的cache page, 是可以被释放的。 那么系统能否主动去释放cache page呢。 进一步调查, 可以发现,系统是可以自动释放cache page的, 条件是当free memory 小于一个阈值 min_free_kbytes. 这个值查看了一下, 系统默认是66M。 这也是为什么线上服务器会出现cache page不被释放的原因。 因为还剩192M, 没有达到这个阈值。 但是这时系统已经hang了。

具体min_free_kbytes的设置要进行微调,高了低了都不好。 低了就是今天出现的这种情况,已经没有内存可用了, 但是cache page也得不到释放。 高了就可能出现内存的浪费, 并且很容易频繁触发cache 的释放,影响性能。

目前在16G内存的机器上,先设置成了512M, 8G内存的机器上上设置成了256M。先看看效果如何吧。

相关文章

  • linux 内存cache的释放

    线上服务器出现了, 内存占用过高, 导致服务器卡顿的情况。 出现问题时的内存占用情况如下图: 通过上图可以看到, ...

  • shell

    参考: file-max与ulimit的关系与差别 Linux内存中的Cache真的能被回收吗? 手动释放linu...

  • 【转】Linux 内存中的 Cache 真的能被回收么?

    Linux 内存中的 Cache 真的能被回收么?

  • Linux_112_释放内存

    提示内存不足,但是在cache,buffer中又看到大量的内存,如何释放查看内存:free -m 1.释放cach...

  • 利用psutil获取内存信息

    linux内存信息包括:total、used、free、buffers、cache、swap。 获取内存的完整信息...

  • Linux 查看清理cache

    Linux 查看清理cache 因为LINUX的内核机制,一般情况下不需要特意去释放已经使用的cache。这些ca...

  • Linux内存机制(swap)

    本文介绍linux内存机制、虚拟内存swap释放等原理及实操。 一、什么是linux的内存机制? 二、linux什...

  • linux 释放内存

    step1.重新应用程序 step2. sync . sync将所有正在内存中的缓冲区写到磁盘中,其中包括已经修改...

  • linux释放内存

    free -m 查看 /bin/sync /bin/echo "1">/proc/sys/vm/drop_cach...

  • Linux cache参数调优

    缓存机制(cache)是保证Linux环境下对硬盘/flash操作效率的有效方式。cache建立在内存中,它缓存了...

网友评论

      本文标题:linux 内存cache的释放

      本文链接:https://www.haomeiwen.com/subject/udlmpftx.html