具有大量callback的NodeJS的性能

我正在做一个NodeJS应用程序。 有一个特定的RESTful API(GET),当用户触发时,它需要服务器执行大约10-20个networking操作来从不同的来源获取信息。 所有这些networking操作都是asynchronouscallback,一旦完成,结果会由nodejs应用程序整合并发送回客户端。 所有这些操作都是通过async.map函数并行启动的。

我只是想明白,因为nodejs是单线程的,并且不使用多核机器(至less不是没有集群),所以当有多个callback处理时,节点如何扩展? callback的实际处理是否依赖于节点的单线程处于空闲状态,还是并行处理callback以及主线程?

我问的原因是,我看到我20次callback的performance从第一次callback到最后一次callback恶化。 例如,第一次networking操作(在10-20之中)需要141ms才能完成,而最后一次需要大约4秒(从执行函数到函数的callback返回一个值的时间一个错误)。 它们都是相同的networking操作,打到相同的数据源,所以数据源不是瓶颈)。 我知道一个事实,即数据源不超过200ms来响应一个请求。

我发现这个线程 ,所以在我看来,单线程需要解决所有的callback和新的请求。

所以我的问题是,对于会触发很多callback的操作,优化其性能的最佳做法是什么?