0

I realize there have been a number of discussions about relationship of "free" to "available" memory in the output of free. However, what I'm currently seeing seems particularly unusual, and I haven't found an explanation yet in my searching.

Typically, I expect "available" to be somewhere in the approximate ballpark of free +/- buff/cache, and that the value reported as "available" by free is just an estimate, but.... what I'm seeing here seems pretty far off from what I would expect. Just curious if anyone else may have seen such behavior. This is on CentOS 7.9 with kernel-3.10.0-1160.53.1.el7.x86_64:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           503G        475G         21G        1.8M        6.3G        441M
Swap:          8.0G          0B        8.0G
  • 1
    See suggestions at: https://serverfault.com/questions/940196/why-is-memavailable-a-lot-less-than-memfreebufferscached or: https://serverfault.com/questions/1089209/proc-meminfo-shows-memfree-greater-than-memavailable-does-it-make-sense and include more info from /proc please – JohannesB Mar 04 '22 at 21:27
  • Also duplicate of https://unix.stackexchange.com/a/440254/211119 – JohannesB Mar 04 '22 at 23:07
  • 1
    I didn't consider this to be a duplicate of unix.stackexchange.com/a/440254/211119 because the scenario described in that one (having available be 99.5% of free) looked perfectly normal to me. However, in my case, available ended up being ~2% of free. My question wasn't why "available" was less than "free", but rather why it was so much less than free.

    With that said, the serverfault items pointed me in the right direction. It turns out that one some of our hosts, vm.min_free_kbytes is set rather large, which accounted for the difference I was seeing. Thanks!

    – guzzijason Mar 08 '22 at 20:05
  • thanks for sharing the root cause – JohannesB Mar 09 '22 at 09:09

1 Answers1

2

In my case, it turned out vm.min_free_kbytes had been significantly increased on some systems, resulting in the inability to make a good chuck of free mem available.