gpt4 book ai didi

node.js - NodeJS 性能问题

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:20 26 4
gpt4 key购买 nike

我正在 Ubuntu 14.04(可信)上使用 NodeJS 6.10.3 LTS 运行 API 服务器。我注意到我的 API 服务器在 c4.large EC2 实例上运行时的最高速度为约 600 个请求/分钟。我所说的“达到顶峰”的意思是,我看到 CPU 达到 100% 注意,我知道我没有通过使用集群模块充分利用实例,但目前还可以。

我对 API 服务器进行了 10 秒的 .cpuprofile 转储,并注意到每秒大约 300 毫秒,分析器都会显示我的 NodeJS 代码处于闲置状态(空闲)。

有谁知道这(闲置)意味着什么?是GC的问题吗?或者它是我触发的内部(V8)锁?任何帮助或指向有助于调试此问题的工具的指针都会很好。我正在努力匿名化 cpuprofile 中的一些堆栈跟踪,以便我可以分享。

我使用的包主要是 ExpressJS 4、Couchbase NodeJS SDK、Socket.IO。代码路径主要是读取请求,并推送到 Couchbase。最后通过 Views API 查询 couchbase,并在 Socket.IO channel 上推送一些聚合数据。所以所有漂亮的 I/O 异步友好的东西。我已确保没有调用任何同步函数。 cpu 配置文件中的 (idle) 之前没有函数调用模式。

最佳答案

也可能只是 I/O 等待,这意味着没有一个套接字有可供读取的数据,因此时间处于空闲状态。如果您使用负载测试库,您应该检查请求是否在一秒钟内均匀分布。

看看https://www.npmjs.com/package/gc-stats检查 GC 数据。有一些标志可以增加堆空间,如果问题与 GC 相关,则可以在 GC 运行时进行更改。

关于node.js - NodeJS 性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44188901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com