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) // /procs/meminfo - sample (all in kB)
// //
// MemTotal: 32806380 kB // MemTotal: 32806380 kB
// MemFree: 19220948 kB // MemFree: 17977744 kB
// MemAvailable: 20851100 kB // MemAvailable: 19768972 kB
// Buffers: 532892 kB // Buffers: 517028 kB
// Cached: 1935000 kB // Cached: 2161876 kB
// SwapCached: 0 kB // SwapCached: 456 kB
// Active: 11953672 kB // Active: 12081176 kB
// Inactive: 1069288 kB // Inactive: 2164616 kB
// SwapTotal: 16768892 kB // Active(anon): 10832884 kB
// SwapFree: 16768892 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) { function mem(callback) {
@ -117,6 +130,9 @@ function mem(callback) {
active: os.totalmem() - os.freemem(), // temporarily (fallback) active: os.totalmem() - os.freemem(), // temporarily (fallback)
available: os.freemem(), // temporarily (fallback) available: os.freemem(), // temporarily (fallback)
buffers: 0,
cache: 0,
slab: 0,
buffcache: 0, buffcache: 0,
swaptotal: 0, swaptotal: 0,
@ -134,20 +150,25 @@ function mem(callback) {
result.free = result.free ? result.free * 1024 : os.freemem(); result.free = result.free ? result.free * 1024 : os.freemem();
result.used = result.total - result.free; result.used = result.total - result.free;
let buffers = parseInt(util.getValue(lines, 'buffers'), 10); result.buffers = parseInt(util.getValue(lines, 'buffers'), 10);
buffers = buffers ? buffers * 1024 : 0; result.buffers = result.buffers ? result.buffers * 1024 : 0;
let cached = parseInt(util.getValue(lines, 'cached'), 10); result.cached = parseInt(util.getValue(lines, 'cached'), 10);
cached = cached ? cached * 1024 : 0; result.cached = result.cached ? result.cached * 1024 : 0;
result.buffcache = buffers + cached; 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); let available = parseInt(util.getValue(lines, 'memavailable'), 10)
result.available = result.available ? result.available * 1024 : os.freemem(); 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 = result.total - result.free - result.buffcache;
result.active = parseInt(util.getValue(lines, 'active'), 10); // result.active = parseInt(util.getValue(lines, 'active'), 10);
result.active = result.active ? result.active * 1024 : 0; // result.active = result.active ? result.active * 1024 : 0;
result.buffcache = result.total - result.free - result.active; // result.buffcache = result.total - result.free - result.active;
result.active = result.total - result.available;
result.swaptotal = parseInt(util.getValue(lines, 'swaptotal'), 10); result.swaptotal = parseInt(util.getValue(lines, 'swaptotal'), 10);
result.swaptotal = result.swaptotal ? result.swaptotal * 1024 : 0; result.swaptotal = result.swaptotal ? result.swaptotal * 1024 : 0;