Node.exe卡在100%CPU

时间:2017-09-28 12:22:00

标签: node.js express iisnode iis-10

我有一个ExpressJS node.js应用程序在Windows Server 2016 VM上的IISNode上运行,具有4个内核和32GB内存。我可以为每个核心设置一个进程,所以我有4个node.exe正在运行我的应用程序。节点版本是v6.10.3。

这就是资源通常的样子:

My normal running processes

我可以看到,由于内存波动,节点垃圾收集似乎正在发生。如截图所示,它将正常悬停在峰值工作之下。

但是,我试图找到其中一个进程的原因,以达到100%的CPU利用率。每当发生这种情况时,我都被迫杀死node.exe,因为我的整个应用程序都停止了。它会在CPU峰值时停滞不前,然后所有进一步的请求都会旋转。

  1. 什么会导致node.exe中CPU利用率过高,怎么能锁定在100%?这是由于垃圾收集停滞吗?
  2. 可以使用哪些工具来确定哪个node.exe停止运行以更好地调试我的应用程序?
  3. IISNode应该作为负载均衡器工作,并将所有请求委托给另一个核心吗?
  4. 现在我被迫在计时器上回收我的应用程序池以完全杀死所有工作节点进程并重新启动它们。这可以抑制应用程序长时间停机。

    我很感激任何见解!

1 个答案:

答案 0 :(得分:0)

我在Windows 10中遇到了同样的问题。打开任务管理器>进程Nodejs:服务器端JavaScript(32位)使用%70 CPU。我发现了article

我使用了Microsoft Safety Scanner

Microsoft安全扫描程序发现威胁(检测到威胁:MonitoringTool:Win32 / MicTrayDebugger),并删除了(发现MonitoringTool:Win32 / MicTrayDebugger并已删除!),此问题已修复我。但我不确定:)

如果运行Microsoft安全扫描程序,则记录文件路径C:\ Windows \ debug \ msert.log