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 | |
| }; | |
| } | |