diff --git a/lib/memory.js b/lib/memory.js index 841af22..fa19b0f 100644 --- a/lib/memory.js +++ b/lib/memory.js @@ -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;