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