是什么导致Linux内核中的缓冲区膨胀?

时间:2018-11-16 08:22:55

标签: c linux caching memory linux-kernel

当您检查free -h的输出时

您可以看到-/ +缓冲区/缓存列:G G

这里N是(MemTotal-(MemFree +缓冲区+缓存的)

M是(MemFree +缓冲区+缓存)

问题是

什么样的程序/代码可以持续增加N?

有没有一种方法可以分析这构成什么种类的提示?

有没有一种方法可以冲洗N? (我尝试过sync && echo 3 > /proc/sys/vm/drop_caches并没有太大帮助)

注意: 使用N和M的原因是-/ +缓冲区/缓存的名称:used / free 很大,使用缓冲区和缓存会使问题变得模棱两可。

欢迎使用任何指针。

1 个答案:

答案 0 :(得分:0)

  1. tophtop)显示每个进程的内存消耗;
  2. cat /proc/meminfo-监视哪种类型的内存在增加;
  3. cat /proc/slabinfo-监视内核中增加的平板,然后搜索,使用该平板的服务

编辑: 4. slabtop实时显示slabinfo