Consider using MemAvailable for Used memory calculation

Is your feature request related to a problem? Please describe.

Current memory "used" calculation is based on the old formula used by the free (and procps utils) command on Linux: Used = Total - Free - Buffers - Cached(with SReclaimable)

The issue is that this formula is not accurate because the Cached includes memory that is not freeable. That's why the Linux Kernel 3.14 introduced the MemAvailable state: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773

For that reason, tools like free or top changed their used formula to Used = Total - Available since
since version v4.0.1, reference commit.

Comments on the Used memory on Linux includes Slab issue rely on the accuracy of old free formula.

See procs-ps calculation: https://gitlab.com/procps-ng/procps/-/blob/v4.0.1/library/meminfo.c#L702

Describe the solution you'd like

Rely on the kernel metrics to calculate the used memory: https://elixir.bootlin.com/linux/v6.15.4/source/mm/show_mem.c#L32

Memory that is used by applications, but can be made available, Linux calls it Available.

Other links: