Merge remote-tracking branch 'upstream/master'

This commit is contained in:
mutlusun 2018-06-06 21:24:23 +02:00
commit 18d9d3aa35
2 changed files with 28 additions and 24 deletions

View File

@ -323,8 +323,10 @@ Supported platforms: Linux, FreeBSD.
total system memory, 4th as free memory, 5th as swap usage in percent, 6th
as swap usage, 7th as total system swap, 8th as free swap and 9th as
memory usage with buffers and cache
* FreeBSD: see above, but 9th value is not returned (always `-1`) and there
is a 10th value giving wired memory
* FreeBSD: see above, but there are four more values: the 9th value is wired memory
in percent, the 10th value is wired memory. The 11th and 12th value return
'not freeable memory' (basically active+inactive+wired) in percent and megabytes,
respectively.
**vicious.widgets.mpd**

View File

@ -18,26 +18,28 @@ local function worker(format)
-- Get memory space in bytes
_mem.total = tonumber(vm_stats.v_page_count) * pagesize
_mem.buf.f = tonumber(vm_stats.v_free_count) * pagesize
_mem.buf.a = tonumber(vm_stats.v_active_count) * pagesize
_mem.buf.i = tonumber(vm_stats.v_inactive_count) * pagesize
_mem.buf.c = tonumber(vm_stats.v_cache_count) * pagesize
_mem.buf.w = tonumber(vm_stats.v_wire_count) * pagesize
_mem.buf.free = tonumber(vm_stats.v_free_count) * pagesize
_mem.buf.laundry = tonumber(vm_stats.v_laundry_count) * pagesize
_mem.buf.cache = tonumber(vm_stats.v_cache_count) * pagesize
_mem.buf.wired = tonumber(vm_stats.v_wire_count) * pagesize
-- Rework into megabytes
_mem.total = math.floor(_mem.total/1048576)
_mem.buf.f = math.floor(_mem.buf.f/1048576)
_mem.buf.a = math.floor(_mem.buf.a/1048576)
_mem.buf.i = math.floor(_mem.buf.i/1048576)
_mem.buf.c = math.floor(_mem.buf.c/1048576)
_mem.buf.w = math.floor(_mem.buf.w/1048576)
_mem.buf.free = math.floor(_mem.buf.free/1048576)
_mem.buf.laundry = math.floor(_mem.buf.laundry/1048576)
_mem.buf.cache = math.floor(_mem.buf.cache/1048576)
_mem.buf.wired = math.floor(_mem.buf.wired/1048576)
-- Calculate memory percentage
_mem.free = _mem.buf.f + _mem.buf.c + _mem.buf.i
_mem.free = _mem.buf.free + _mem.buf.cache
-- used memory basically consists of active+inactive+wired
_mem.inuse = _mem.total - _mem.free
_mem.wire = _mem.buf.w
_mem.notfreeable = _mem.inuse - _mem.buf.laundry
_mem.wire = _mem.buf.wired
_mem.usep = math.floor(_mem.inuse / _mem.total * 100)
_mem.inusep= math.floor(_mem.inuse / _mem.total * 100)
_mem.wirep = math.floor(_mem.wire / _mem.total * 100)
_mem.notfreeablep = math.floor(_mem.notfreeable / _mem.total * 100)
-- Get swap states
local vm_swap_total = tonumber(helpers.sysctl("vm.swap_total"))
@ -47,23 +49,23 @@ local function worker(format)
if vm_swap_enabled == 1 and vm_swap_total > 0 then
-- Get swap space in bytes
_swp.total = vm_swap_total
_swp.buf.f = _swp.total - tonumber(vm_stats.v_swapin)
_swp.buf.free = _swp.total - tonumber(vm_stats.v_swapin)
-- Rework into megabytes
_swp.total = math.floor(_swp.total/1048576)
_swp.buf.f = math.floor(_swp.buf.f/1048576)
_swp.buf.free = math.floor(_swp.buf.free/1048576)
-- Calculate percentage
_swp.inuse = _swp.total - _swp.buf.f
_swp.inuse = _swp.total - _swp.buf.free
_swp.usep = math.floor(_swp.inuse / _swp.total * 100)
else
_swp.usep = -1
_swp.inuse = -1
_swp.total = -1
_swp.buf.f = -1
_swp.buf.free = -1
end
return { _mem.usep, _mem.inuse, _mem.total, _mem.free,
_swp.usep, _swp.inuse, _swp.total, _swp.buf.f,
-1, _mem.wire }
_swp.usep, _swp.inuse, _swp.total, _swp.buf.free,
_mem.wirep, _mem.wire, _mem.notfreeablep, _mem.notfreeable }
end
return setmetatable(mem_freebsd, { __call = function(_, ...) return worker(...) end })