forked from arunoda/node-usage-nodejitsu
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstart.js
More file actions
55 lines (40 loc) · 1017 Bytes
/
Copy pathstart.js
File metadata and controls
55 lines (40 loc) · 1017 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var express = require('express');
var usage = require('usage');
var util = require('util');
var app = express();
app.get('/stress', function(req, res) {
console.log('starting stress test');
var open = true;
res.writeHead(200, {
'Content-Type': 'text/html; charset=UTF-8'
});
var data = [];
(function startStress() {
for(var lc=0; lc<99999999; lc++) {
}
if(open) {
process.nextTick(startStress);
}
})();
var usageHandler = setInterval(function() {
usage.lookup(process.pid, writeUsage);
}, 1000);
req.on('close', function() {
console.log('ending stress test');
data = [];
open=false;
clearTimeout(usageHandler);
});
function writeUsage(err, usage) {
if(err) {
res.write('err: ' + err.message + "<br>");
} else {
var cpu = usage.cpu.toFixed(2);
var memory = (usage.memory/(1024 * 1024)).toFixed(2);
res.write(util.format("cpu: %s% mem: %smb<br>\n", cpu, memory));
}
}
});
var port = 80;
console.log('starting app on port:', port);
app.listen(port);