Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
var _os = require('os'); | |
window.platform = function(){ | |
return process.platform; | |
} | |
window.cpuCount = function(){ | |
return _os.cpus().length; | |
} | |
window.sysUptime = function(){ | |
//seconds | |
return _os.uptime(); | |
} | |
window.processUptime = function(){ | |
//seconds | |
return process.uptime(); | |
} | |
// Memory | |
window.freemem = function(){ | |
return _os.freemem() / ( 1024 * 1024 ); | |
} | |
window.totalmem = function(){ | |
return _os.totalmem() / ( 1024 * 1024 ); | |
} | |
window.freememPercentage = function(){ | |
return _os.freemem() / _os.totalmem(); | |
} | |
window.freeCommand = function(callback){ | |
// Only Linux | |
require('child_process').exec('free -m', function(error, stdout, stderr) { | |
var lines = stdout.split("\n"); | |
var str_mem_info = lines[1].replace( /[\s\n\r]+/g,' '); | |
var mem_info = str_mem_info.split(' ') | |
total_mem = parseFloat(mem_info[1]) | |
free_mem = parseFloat(mem_info[3]) | |
buffers_mem = parseFloat(mem_info[5]) | |
cached_mem = parseFloat(mem_info[6]) | |
used_mem = total_mem - (free_mem + buffers_mem + cached_mem) | |
callback(used_mem -2); | |
}); | |
} | |
// Hard Disk Drive | |
window.harddrive = function(callback){ | |
require('child_process').exec('df -k', function(error, stdout, stderr) { | |
var total = 0; | |
var used = 0; | |
var free = 0; | |
var lines = stdout.split("\n"); | |
var str_disk_info = lines[1].replace( /[\s\n\r]+/g,' '); | |
var disk_info = str_disk_info.split(' '); | |
total = Math.ceil((disk_info[1] * 1024)/ Math.pow(1024,2)); | |
used = Math.ceil(disk_info[2] * 1024 / Math.pow(1024,2)) ; | |
free = Math.ceil(disk_info[3] * 1024 / Math.pow(1024,2)) ; | |
callback(total, free, used); | |
}); | |
} | |
// Return process running current | |
window.getProcesses = function(nProcess, callback){ | |
// if nprocess is undefined then is function | |
if(typeof nProcess === 'function'){ | |
callback =nProcess; | |
nProcess = 0 | |
} | |
command = 'ps -eo pcpu,pmem,time,args | sort -k 1 -r | head -n'+10 | |
//command = 'ps aux | head -n '+ 11 | |
//command = 'ps aux | head -n '+ (nProcess + 1) | |
if (nProcess > 0) | |
command = 'ps -eo pcpu,pmem,time,args | sort -k 1 -r | head -n'+(nProcess + 1) | |
require('child_process').exec(command, function(error, stdout, stderr) { | |
var that = this | |
var lines = stdout.split("\n"); | |
lines.shift() | |
lines.pop() | |
var result = '' | |
lines.forEach(function(_item,_i){ | |
var _str = _item.replace( /[\s\n\r]+/g,' '); | |
_str = _str.split(' ') | |
// result += _str[10]+" "+_str[9]+" "+_str[2]+" "+_str[3]+"\n"; // process | |
result += _str[1]+" "+_str[2]+" "+_str[3]+" "+_str[4].substring((_str[4].length - 25))+"\n"; // process | |
}); | |
callback(result); | |
}); | |
} | |
/* | |
* Returns All the load average usage for 1, 5 or 15 minutes. | |
*/ | |
window.allLoadavg = function(){ | |
var loads = _os.loadavg(); | |
return loads[0].toFixed(4)+','+loads[1].toFixed(4)+','+loads[2].toFixed(4); | |
} | |
/* | |
* Returns the load average usage for 1, 5 or 15 minutes. | |
*/ | |
window.loadavg = function(_time){ | |
if(_time === undefined || (_time !== 5 && _time !== 15) ) _time = 1; | |
var loads = _os.loadavg(); | |
var v = 0; | |
if(_time == 1) v = loads[0]; | |
if(_time == 5) v = loads[1]; | |
if(_time == 15) v = loads[2]; | |
return v; | |
} | |
window.cpuFree = function(callback){ | |
getCPUUsage(callback, true); | |
} | |
window.cpuUsage = function(callback){ | |
getCPUUsage(callback, false); | |
} | |
function getCPUUsage(callback, free){ | |
var stats1 = getCPUInfo(); | |
var startIdle = stats1.idle; | |
var startTotal = stats1.total; | |
setTimeout(function() { | |
var stats2 = getCPUInfo(); | |
var endIdle = stats2.idle; | |
var endTotal = stats2.total; | |
var idle = endIdle - startIdle; | |
var total = endTotal - startTotal; | |
var perc = idle / total; | |
if(free === true) | |
callback( perc ); | |
else | |
callback( (1 - perc) ); | |
}, 1000 ); | |
} | |
function getCPUInfo(callback){ | |
var cpus = _os.cpus(); | |
var user = 0; | |
var nice = 0; | |
var sys = 0; | |
var idle = 0; | |
var irq = 0; | |
var total = 0; | |
for(var cpu in cpus){ | |
if (!cpus.hasOwnProperty(cpu)) continue; | |
user += cpus[cpu].times.user; | |
nice += cpus[cpu].times.nice; | |
sys += cpus[cpu].times.sys; | |
irq += cpus[cpu].times.irq; | |
idle += cpus[cpu].times.idle; | |
} | |
var total = user + nice + sys + idle + irq; | |
return { | |
'idle': idle, | |
'total': total | |
}; | |
} | |