2011-07-04 48 views
0

我使用Express web框架和Node.js。为什么节点使用100%的CPU?

我做一个简单的测试与AB:

ab -n 1000 -c 100 http://127.0.0.1:3000/ 

我使用快递)默认的中间件,只有一个GET(

app.get('/', function(req, res){ 
    res.send("hello");  
}); 

如何能在100加载CPU %,是不是真的异步?

THANK YOU

+1

你要求它尽可能快地抽出你好。你好世界计划是处理器有限的。它使处理器达到极限。 – generalhenry

回答

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使用率,因为节点试图以最快的速度满足这些请求尽可能。仅仅因为它是异步的,并不意味着它不会像你告诉它那样努力工作。