Node.js 可以连接节点';将内置探查器添加到现有进程

Node.js 可以连接节点';将内置探查器添加到现有进程,node.js,profile,Node.js,Profile,我熟悉Node的内置CPU探查器: NODE\u ENV=生产节点--prof server.js 。。。但是探查器可以连接到正在运行的进程 我需要解决的问题是,我们的IoT网关在启动过程中有很多繁重的工作,我只想在稳定状态下繁重的工作完成后对CPU进行分析,因此我想将其附加到运行过程中,而不是从启动开始监控,因为它将完全错误地表示我的稳定状态 我知道你可以用调试器来做这件事,但我需要用分析器来做 您可以使用远程检查器 NODE_ENV=production node --inspect-br

我熟悉Node的内置CPU探查器:

NODE\u ENV=生产节点--prof server.js

。。。但是探查器可以连接到正在运行的进程

我需要解决的问题是,我们的IoT网关在启动过程中有很多繁重的工作,我只想在稳定状态下繁重的工作完成后对CPU进行分析,因此我想将其附加到运行过程中,而不是从启动开始监控,因为它将完全错误地表示我的稳定状态


我知道你可以用调试器来做这件事,但我需要用分析器来做

您可以使用远程检查器

 NODE_ENV=production node --inspect-brk server.js
现在,进入chrome进入
chrome://inspect
启动NodeJS Inspector并恢复应用程序

  • profiler
    选项卡手动启动探查器
  • 您可以使用
    console.profile()
    console.profileEnd()

  • 如果要检查远程服务器:

  • 使用以下命令启动脚本:
    NODE\u ENV=production NODE--inspect=0.0.0.0:9229 server.js
  • chrome://inspect
    单击
    配置
    新建
    发现网络目标
    并添加服务器的IP地址和
    9229
    端口。请参考该页面,然后您将看到要检查的远程服务器

  • 确保打开远程服务器防火墙上的
    9229
    端口。如果您只能访问
    22
    (ssh),请尝试打开ssh tunel:
    ssh-L 9229:127.0.0.1:9229some@myserver-N
    。然后,您只能使用
    --inspect
    标志启动服务器,而无需ip绑定。

    这是一个很好的提示,谢谢。。。但在这种情况下,我需要监视的运行节点的设备是远程的,位于防火墙后面,我无法到达。我只能通过SSHYeah看到一种方法,这很好,我将通过ssh隧道到服务器,并通过浏览器连接调试器,然后从那里配置文件。那太好了,谢谢你!