luci-mod-status: use available and cached memory for progress bars 2672/head
authorZachary Cook <zachcook1991@gmail.com>
Sat, 2 Nov 2019 21:01:58 +0000 (17:01 -0400)
committerZachary Cook <zachcook1991@gmail.com>
Sat, 2 Nov 2019 21:35:15 +0000 (17:35 -0400)
Fixes: #1148

Uses available and cached memory from /proc/meminfo via procd, and carefully
handles the cases where they are nil or zero, so as to not require specific
linux or procd versions to function

MemAvailable is a better estimate than free + buffered/cached, see:
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0

Also adds a new progressbar that shows cached memory if not nil

Signed-off-by: Zachary Cook <zachcook1991@gmail.com>
modules/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js

index 9baf0420d74e0c300ca281f459c89fcf56392725..2e84774346392daace28fc12ebb73ac7748d4184 100644 (file)
@@ -31,11 +31,14 @@ return L.Class.extend({
                    swap = L.isObject(systeminfo.swap) ? systeminfo.swap : {};
 
                var fields = [
-                       _('Total Available'), (mem.total && mem.free && mem.buffered) ? mem.free + mem.buffered : null,
+                       _('Total Available'), (mem.available) ? mem.available : (mem.total && mem.free && mem.buffered) ? mem.free + mem.buffered : null,
                        _('Free'),            (mem.total && mem.free) ? mem.free : null,
                        _('Buffered'),        (mem.total && mem.buffered) ? mem.buffered : null
                ];
 
+               if (mem.cached)
+                       fields.push(_('Cached'), mem.cached);
+
                if (swap.total > 0)
                        fields.push(_('Swap free'), swap.free);