I’m working a a PR for snmpd for adding support of reporting MemAvailable.
If this gets checked in, any change it would be supported by LibreNMS?
I’m working a a PR for snmpd for adding support of reporting MemAvailable.
If this gets checked in, any change it would be supported by LibreNMS?
isn’t this still implemented?
a Device -> Graph -> System -> Detailed Memory Usage ?
That would be great - though how is this being implemented without MemAvailable within /proc/memory being exported by snmpd?
Didn’t take a deeper look on it, but it looks like its the mempool poller which handles this.
To get knowledge about the way i would start with: includes/polling/mempools.inc.php
But it seems data are coming directly via SNMP.
You are right the data is coming from SNMP.
What I wanted to archive is to know the “available” memory.
From what I understood with the current LibreNMS implementation, it calculates the memory in two category:
Physical - counts All and Free(which is usually very small for the buffer/shared thing)
Virtual - this is simply the All and Free calculation on Physical + Swap, which doesn’t necessarily reflect the “Available” concept.
Hence the Feature Request here - And again, the underlying SNMP doesn’t export the “Available” memory so I don’t believe this is implemented in LibreNMS anyways (do correct me if wrong)
“free” Memory under linux is relative, it’s mostly reserved by kernel
as you can see free Memory would be used for caching (the orange bar in LibreNMS).
to get the free value … on looking on to the graph it should be a simple subscription of
total Memory (black line) - (red area + cyan area + blue area)
simple mathmatics
nethertheless the RAM may be “free” but as you can see there also, it’s used for caching
i’m not sure if it is needed to graph or print those value also
to clairify - I’m talking about the “available” memory, not free.
If you’d click in to the PR linked in the original post, you’ll get to see what I’m actually talking about.
I doubt this is true:
total Memory - the physical mem installed on the machine
red - Buffers
cyan - sorry I’m not really an expert of color, but assuming it’s referring to?
blue - Shared
can you please be more clear on this?
And apparently “available” memory will contain part of “Cached/Buffers” where they are not marked “Free” but can be reallocated by other applications.
Take this as an example, how can we get the “available” column from the graph?
root@librenms:~# free -m
total used free shared buff/cache available
Mem: 2048 329 906 134 812 1718
Swap: 0 0 0
Incase any of these links help the PR:
Thanks, I’ve read this post and that’s the inspiration for me to raise the PR to snmpd instead of stuck in figuring out how to do this in LibreNMS
Good stuff i hope you find a way
I think the only other way without changing snmpd is just to make a calculation based off “Free + Buff/Cache”, and label it as Available. Your example above, so 906 + 812 = 1718 which is what your available is reporting, not always the case though. It’s meant to be roughly how it’s calculated according to the Googz.
Yes thought the real calculation can be found here as noted in the PR:
Update: the PR is merged and I’m getting to know when it will be released
Thats awesome
PR to LibreNMS created: https://github.com/librenms/librenms/pull/12110
Hi
was this ever resolved?
I can see the available memory in an Oracle Linux db server but it doesn’t tally up.
If I run free -m I can see that the free memory is 30GB but in the librenms graph it states 86.03GB
thanks
Gary