我不确定如何解释运行 WebSphere MQ (WMQ) 的服务器的内存使用情况。主要问题是:WMQ 是否随着时间的推移占用越来越多的内存(是否泄漏内存)或者一切正常,Linux 正在使用我们的 RAM 进行磁盘缓存?
我们有以下 Cacti 图。
这些数据是从 /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 周”开始一直在增加。另一方面,“缓存”和“缓冲区”似乎相当稳定。在这种情况下,“已用内存”有什么关系?WMQ 是否泄漏了内存?
答案1
是的,有些东西正在消耗越来越多的内存。不,这不是 VFS(缓冲区和缓存)。无法从您提供的数据得出任何进一步的结论。
你确实需要看看哪些进程/程序正在使用哪些内存 -这提供了更好的指标而不仅仅是查看 RSS / VSZ,但它仍然可能被 COW 页面误导。尝试获取一系列快照,看看更改是否与 cacti 图中的变化相匹配。
答案2
该系统上有大约 20GB 的 RAM 可供进程使用。操作系统将使用空闲 RAM 来缓存文件系统读取,以加快对相同文件的后续读取。随着文件系统的访问越来越多,看到“已用”RAM 随时间缓慢增加是很正常的;您不会因此看到任何性能问题,如果某个进程稍后需要分配这部分 RAM,那么操作系统会很乐意放弃它。
编辑
正如 @symcbean 指出的那样,有些东西正在慢慢消耗更多的内存。如果服务器只用于这一个应用程序,那么这是首先要查看的地方,但我赞同使用 python 脚本的建议,以便更清楚地了解正在发生的事情。