这里是 Nodejs 的新手,试图找出新建应用程序中的性能问题。
我正在我的 Node 0.12.7 应用程序上运行性能测试,我发现服务器间歇性挂起。达到该状态后需要重新启动。确认没有内存泄漏(进程堆不超过 500 MB,而默认最大堆大小为 1.4GB,据我所知)后,我们开始检查 CPU 配置文件。我用过this snippet of code依赖 v8-profiler 来获取常规配置文件
这是我们从 jmeter 遇到的图表之一(尽管服务器没有挂起)
我们通过加载 CPU 配置文件在 Chrome 中绘制了火焰图。我本以为此时JS会卡在某个地方,但我发现正是在这个时间范围内, Node 服务器闲置了很长时间。谁能帮助我了解服务器在受到客户端请求轰炸时保持空闲状态并最终在 10 分钟后恢复继续运行的可能原因是什么?
不幸的是,我丢失了数据来检查 16:48:10 和 16:57:40 之间的响应是错误还是成功,但它们很可能是来自代理的错误响应,因为 Node 没有世界上的一份关怀。
这是在 Chrome 中看到的火焰图
最佳答案
这可能有多种原因。
- 服务器不接受请求。达到峰值后,您是否发现吞吐量有所下降?
- 您是否检查过服务器日志以查看是否记录了任何异常情况?
- 尝试绘制测试持续时间内响应时间和吞吐量的趋势。
- 您可能想查看代码中的任何 IO 绑定(bind)操作。
- 检查处理器队列长度。如果进程没有获得足够的 CPU,您应该会看到它不断增加。
关于javascript - 性能测试期间 NodeJS 空闲操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39149536/