Use MemAvailable for mem.free

The current method of calculating the amount of free memory is
incorrect. The linux kernel provides a method of getting this value,
MemAvailable, which we can simply use directly
This commit is contained in:
Jay Kamat 2018-09-27 18:44:31 -07:00
parent a081bf777b
commit 0db5f3f222
No known key found for this signature in database
GPG Key ID: 5D2E399600F4F7B5
1 changed files with 2 additions and 1 deletions

View File

@ -26,6 +26,7 @@ local function worker(format)
for k, v in string.gmatch(line, "([%a]+):[%s]+([%d]+).+") do
if k == "MemTotal" then _mem.total = math.floor(v/1024)
elseif k == "MemFree" then _mem.buf.f = math.floor(v/1024)
elseif k == "MemAvailable" then _mem.buf.a = math.floor(v/1024)
elseif k == "Buffers" then _mem.buf.b = math.floor(v/1024)
elseif k == "Cached" then _mem.buf.c = math.floor(v/1024)
elseif k == "SwapTotal" then _mem.swp.t = math.floor(v/1024)
@ -35,7 +36,7 @@ local function worker(format)
end
-- Calculate memory percentage
_mem.free = _mem.buf.f + _mem.buf.b + _mem.buf.c
_mem.free = _mem.buf.a
_mem.inuse = _mem.total - _mem.free
_mem.bcuse = _mem.total - _mem.buf.f
_mem.usep = math.floor(_mem.inuse / _mem.total * 100)