我正在使用Express Web框架和Node.js。
我正在用ab执行一个简单的测试:
ab -n 1000 -c 100 http://127.0.0.1:3000/
我正在使用Express的默认中间件,只有一个get()
app.get('/', function(req, res){
res.send("hello");
});
如何以100%的速度加载CPU,是不是真的异步?
谢谢你
答案 0 :(得分:3)
仅仅因为某些东西是异步的,并不意味着它无法使用所有可用的处理资源。我们来看看你的样本服务器:
// when you get a request for "/", perform the
// following function as quickly as you can.
app.get('/', function(req, res) {
// this is the function to perform. It is CPU
// bound when serving a client *on the same machine*.
res.send("hello");
});
当您请求ab向您的示例应用程序发出100个并发请求时,您显然会飙升100%的CPU利用率,因为节点正在尝试尽快满足这些请求。仅仅因为它是异步的,并不意味着它不会像你告诉它那样努力工作。