mem() improved calculation linux

This commit is contained in:
Sebastian Hildebrandt 2019-11-10 20:56:42 +01:00
parent a15de2063b
commit 780835fd69

View File

@ -93,17 +93,30 @@ const OSX_RAM_manufacturers = {
// /procs/meminfo - sample (all in kB)
//
// MemTotal: 32806380 kB
// MemFree: 19220948 kB
// MemAvailable: 20851100 kB
// Buffers: 532892 kB
// Cached: 1935000 kB
// SwapCached: 0 kB
// Active: 11953672 kB
// Inactive: 1069288 kB
// SwapTotal: 16768892 kB
// SwapFree: 16768892 kB
// MemTotal: 32806380 kB
// MemFree: 17977744 kB
// MemAvailable: 19768972 kB
// Buffers: 517028 kB
// Cached: 2161876 kB
// SwapCached: 456 kB
// Active: 12081176 kB
// Inactive: 2164616 kB
// Active(anon): 10832884 kB
// Inactive(anon): 1477272 kB
// Active(file): 1248292 kB
// Inactive(file): 687344 kB
// Unevictable: 0 kB
// Mlocked: 0 kB
// SwapTotal: 16768892 kB
// SwapFree: 16768304 kB
// Dirty: 268 kB
// Writeback: 0 kB
// AnonPages: 11568832 kB
// Mapped: 719992 kB
// Shmem: 743272 kB
// Slab: 335716 kB
// SReclaimable: 256364 kB
// SUnreclaim: 79352 kB
function mem(callback) {
@ -117,6 +130,9 @@ function mem(callback) {
active: os.totalmem() - os.freemem(), // temporarily (fallback)
available: os.freemem(), // temporarily (fallback)
buffers: 0,
cache: 0,
slab: 0,
buffcache: 0,
swaptotal: 0,
@ -134,20 +150,25 @@ function mem(callback) {
result.free = result.free ? result.free * 1024 : os.freemem();
result.used = result.total - result.free;
let buffers = parseInt(util.getValue(lines, 'buffers'), 10);
buffers = buffers ? buffers * 1024 : 0;
let cached = parseInt(util.getValue(lines, 'cached'), 10);
cached = cached ? cached * 1024 : 0;
result.buffcache = buffers + cached;
result.buffers = parseInt(util.getValue(lines, 'buffers'), 10);
result.buffers = result.buffers ? result.buffers * 1024 : 0;
result.cached = parseInt(util.getValue(lines, 'cached'), 10);
result.cached = result.cached ? result.cached * 1024 : 0;
result.slab = parseInt(util.getValue(lines, 'slab'), 10);
result.slab = result.slab ? result.slab * 1024 : 0;
result.buffcache = result.buffers + result.cached + result.slab;
result.available = parseInt(util.getValue(lines, 'memavailable'), 10);
result.available = result.available ? result.available * 1024 : os.freemem();
let available = parseInt(util.getValue(lines, 'memavailable'), 10)
result.available = available ? available * 1024 : result.buffers + result.cache + result.free + result.slab
// result.available = result.available ? result.available * 1024 : os.freemem();
// result.active = result.total - result.free - result.buffcache;
result.active = parseInt(util.getValue(lines, 'active'), 10);
result.active = result.active ? result.active * 1024 : 0;
result.buffcache = result.total - result.free - result.active;
// result.active = parseInt(util.getValue(lines, 'active'), 10);
// result.active = result.active ? result.active * 1024 : 0;
// result.buffcache = result.total - result.free - result.active;
result.active = result.total - result.available;
result.swaptotal = parseInt(util.getValue(lines, 'swaptotal'), 10);
result.swaptotal = result.swaptotal ? result.swaptotal * 1024 : 0;