nodejs REST Api的端到端分析

时间:2018-02-19 17:31:46

标签: javascript node.js profiling v8

我编写了一个Nodejs api,将使用5000个并发请求进行访问。 我已经使用Jmeter为5000个并发用户测试了api。 api最初花费很少的时间,但在1000请求之后需要2秒才能完成请求。 api代码执行时间是400ms,由开始和结束请求的时间差计算。

有没有办法可以检查API请求在等待其他请求完成的事件循环中花费的时间?有哪些工具可以帮助API的端到端分析?

1 个答案:

答案 0 :(得分:0)

Node.js支持使用--prof标记进行性能分析,例如, https://nodejs.org/en/docs/guides/simple-profiling/(以及互联网上的一堆其他文档和教程)。这并没有回答“这个特定请求做了什么或等待了什么?”,但它确实回答“节点进程花了多少时间做什么?” - 希望这两个问题都有相同的答案。

除此之外,我建议简化您的设置,以缩小正在发生的事情。如果只在一个核心上运行(请求较少),问题是否仍然存在?如果减少并发请求的数量,问题是否仍然存在?在极端情况下,如果您按顺序发送请求,问题是否仍然存在?您可以越简化事情,就越容易分辨出正在发生的事情。

可能是你的实现正在泄漏一些资源(内存,文件处理程序,等等),随着时间的推移会使事情变慢。可能是5000个并发请求的数量超过了你的四核可以处理的数量。