来自这篇文章 在Linux和macOS下如何测量io性能。
在Linux下测量磁盘io性能,可以使用dd命令:
|
|
在macOS下起相同作用的命令是:
|
|
代码部分:
var restify = require('restify');//restify框架
var spawn = require('child_process').spawn;//系统自带的库
function respond(req, res, next) {
var result = "";
var child = spawn('dd', ['if=/dev/zero', 'of=/tmp/test1.img', 'bs=100M', 'count=1', 'oflag=dsync']);
child.stdout.on('data', function (data) {
console.log('ls command output: ' + data);
});
child.stderr.on('data', function (data) {
console.log('stderr: ' + data);
result += data.toString();
});
child.on('close', function (code) {
console.log('child process exited with code ' + code);
//截取我们所需要的字段
result = result.substr(result.lastIndexOf(',')+1).split('\n')[0];
console.log(result);
res.send(JSON.stringify({io: result}, null, 0));
next();
});
}
var server = restify.createServer();
server.get('/iotest', respond);
server.head('/iotest', respond);
server.listen(3000, function () {
console.log('%s listening at %s', server.name, server.url);
});
由于我是在阿里云ecs上创建的,所以公网ip可以访问。由于上述程序中restify监听的为3000端口,我使用nginx进行了代理,正常80端口即可访问。