New Relic memory reporting

djdy asked:

We’re using New Relic to monitor a server and a PHP application.

New Relic is reporting memory usage of 90%+, which aligns with top. However, the sum of memory used by the processes in New Relic itself, and in top is significantly below that.

Output of free -m:

             total       used       free     shared    buffers     cached
Mem:         17083      16829        254          0        151       1066
-/+ buffers/cache:      15611       1472
Swap:            0          0          0

Output of /proc/meminfo:

MemTotal:       17493932 kB
MemFree:          527248 kB
Buffers:          155516 kB
Cached:          1092348 kB
SwapCached:            0 kB
Active:          1591208 kB
Inactive:         224868 kB
Active(anon):     568500 kB
Inactive(anon):        8 kB
Active(file):    1022708 kB
Inactive(file):   224860 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:               196 kB
Writeback:             0 kB
AnonPages:        568268 kB
Mapped:            27224 kB
Shmem:               296 kB
Slab:           15067184 kB
SReclaimable:   15055000 kB
SUnreclaim:        12184 kB
KernelStack:         880 kB
PageTables:        11060 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     8746964 kB
Committed_AS:    1087196 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       63784 kB
VmallocChunk:   34359674471 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:    17928192 kB
DirectMap2M:           0 kB

Seeking help with interpretation & suggestions on how to re-configure New Relic to make its memory reporting (specifically in regards to critical alerts) more useful.

My answer:

The majority of your memory is:

SReclaimable: 15055000 kB

Which is essentially usable space, as it can be reclaimed at any time, but doesn’t show up in the free command as being free.

You can use slabtop to find out what specifically is using the space.

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.