我们有一个内存泄漏的应用程序?

我不确定如何解释运行WebSphere MQ(WMQ)的服务器的内存使用情况。 主要的问题是:WMQ是否随着时间的推移使用越来越多的内存(是内存泄漏),还是一切正常,Linux正在使用我们的RAM进行磁盘caching?

我们有以下的仙人掌图。

这个数据来自/ proc / meminfo。 其中目前显示以下输出。

[user@server ~]$ cat /proc/meminfo MemTotal: 32956188 kB MemFree: 3963664 kB Buffers: 1225024 kB Cached: 15611124 kB SwapCached: 34016 kB Active: 23880484 kB Inactive: 3279676 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 32956188 kB LowFree: 3963664 kB SwapTotal: 8388600 kB SwapFree: 8354584 kB Dirty: 1648 kB Writeback: 0 kB AnonPages: 10290180 kB Mapped: 457704 kB Slab: 1375028 kB PageTables: 136452 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 24866692 kB Committed_AS: 19962412 kB VmallocTotal: 34359738367 kB VmallocUsed: 382196 kB VmallocChunk: 34359356007 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 Hugepagesize: 2048 kB 

free -m命令目前显示如下。

 [user@server ~]$ free -m total used free shared buffers cached Mem: 32183 28312 3871 0 1196 15245 -/+ buffers/cache: 11870 20313 Swap: 8191 33 8158 

根据网站“linuxatemyram dot com”只有“free -m”的行“ – / + buffers / cache:11870 20313”是相关的。

在Cacti图表中,您可以清楚地看到自“03周”开始以来“已用内存”正在增加。 另一方面,“Cache”和“Buffers”似乎是相当稳定的。 在这种情况下,“使用的内存”是如何相关的? WMQ是否泄漏内存?

是的,有些东西消耗越来越多的记忆。 不,它不是VFS(缓冲区和caching)。 您无法从您提供的数据中得出任何进一步的结论。

你真的需要看看哪些进程/程序正在使用什么内存 – 这比只看RSS / VSZ 提供了一个更好的指标 ,但它仍然可以被COW页面误导。 尝试获取一系列快照,并查看更改是否与您的仙人掌图中的变化相匹配。

你有20GB的RAM可用于该系统上的进程。 操作系统将使用空闲的RAM来caching文件系统读取,加速后续读取相同的文件。 随着越来越多的文件系统被访问,看到“使用的”内存随着时间的推移缓慢增加是很正常的。 你不会看到任何性能问题,如果一个进程需要稍后分配这个RAM,那么操作系统会很乐意放弃它。

编辑

正如@symcbean所指出的,有些东西正在慢慢消耗更多的记忆。 如果将服务器交给这个应用程序,那么这是第一个开始寻找的地方,但是我第二个build议使用python脚本来更清楚地了解发生的事情。