The manner in which Datadog calculates the
system.mem.used metric produces a value that may sometimes be different from what might be displayed by common system resource reporting tools.
For example, running ‘free -m’ on an Ubuntu machine may produce the following memory breakdown (values represent megabytes):
A Datadog Agent running on this same machine reports a
system.mem.used metric with a value of 56856 MB—clearly different from the ‘free -m’ used memory value of 1203 MB.
The reason for this discrepancy is that Datadog includes cached memory in its formula for used memory, where ‘free -m’ does not.
Datadog calculates used memory as follows:
system.mem.used metric includes cached memory, so subtracting this cached memory from used memory results in the following value:
1203 MB—identical to the used memory value reported by ‘free -m’ in the example above.
system.mem.usable metric represents free memory plus cached memory plus buffers (on Linux, it reflects “MemAvailable” attribute from /proc/meminfo whenever possible).
Additional helpful documentation, links, and articles: