linux内存的active,linux /proc/meminfo 中的active(file)值一直增大?

最近一段时间我们系统里的这个现象困扰了我们很久,因此发个帖子想请大家帮忙指导一下思路。问题如下:

OS version:

Red Hat Enterprise Linux Server release 6.9

从系统上线以来,内存free部分持续减少,chache持续增加,基本上增加的部分就是/proc/meminfo 中的active(file)增加的大小。系统上跑的是oracle数据库。虽然linux将文件缓存到chache中是正常行为,但是这个现象一直持续,想搞明白是什么东西一直在缓存file。

之前使用了内存抓取工具crash按以下命令抓取进程中文件信息:crash> foreach files -c -R REG

输出格式如下:

PID: 2203 TASK: ffff88132d169c00 CPU: 30 COMMAND: "oracle_2203_ncd"

ROOT: / CWD: /u01/app/oracle/product/12.2.0.1/dbhome_1/dbs

FD INODE I_MAPPING NRPAGES TYPE PATH

7 ffff8825ecbbe588 ffff8825ecbbe6e0 329 REG /u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/mesg/oraus.msb

14 ffff8827bdb900e8 ffff8827bdb90240 1 REG /tmp/.oracle/oracle_xrc_domain_cm.192.168.10.57.31776

16 ffff8825ecb63108 ffff8825ecb63260 15 REG /u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/mesg/orazhs.msb

17 ffff8825ecbbe588 ffff8825ecbbe6e0 329 REG /u01/app/oracle/product/12.2.0.1/dbhome_1/rdbms/mesg/oraus.msb

按照我的理解,其中NRPAGES是该进程下该文件的Page数量,将每个进程下面缓存的所有文件的NRPAGES汇总即可计算出这一时刻每个进程缓存文件的总大小,然后挑两天的进行对比,即可找出是哪些进程缓存的文件增加了。

共收集和对比5天的数据如下表所示:

date NRPAGE G cache G active(file) G

0530 333.5267372 104 34.26329041

0604 336.3472214 108 36.19488525

0613 253.810276 109 38.11073303

0615 257.9771004 111 38.61402893

0620 256.5512581 113 40.54092407

0604对比0530发现NRPAGE总和的增加与active(file)的增加基本一致,对比每个进程发现是某个工具的Java进程缓存文件增加所导致,将该工具进程重启,对应的java缓存文件的大小大大降低。但是cache没有得到释放。整个现象依然没有得到改变,可以看到从0604到0613到0615到0620,active(file)依然持续增加,但是通过crash所获取的缓存中文件的大小总和却没什么变化,两边对应不上了,这就让我困惑了。

请熟悉Linux内存管理的前辈指点一下,该如何去查找和定位该现象产生的原因呢。

谢谢大家!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值