Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 服务器的活动句柄不断增加,然后使服务器暂停_Node.js_Express_Pm2 - Fatal编程技术网

Node.js 服务器的活动句柄不断增加,然后使服务器暂停

Node.js 服务器的活动句柄不断增加,然后使服务器暂停,node.js,express,pm2,Node.js,Express,Pm2,我已经编写了一个简单的节点API,其唯一目的只是通知用户internet是活动的。我每3秒钟点击一次这个API,它工作正常,直到活动句柄大约为4000或更少,但之后我的服务器停止响应,直到我重新启动服务器。我正在通过pm2运行此服务器。当我键入“pm2 monit”时,我已附加了一个指向服务器映像的链接 山塔努,为此,我认为使用express是一种过激行为。您可以尝试使用本机模块,也可以尝试使用相同的模块。请在下面找到一个简单的基于乒乓球的服务器的代码 const http = require(

我已经编写了一个简单的节点API,其唯一目的只是通知用户internet是活动的。我每3秒钟点击一次这个API,它工作正常,直到活动句柄大约为4000或更少,但之后我的服务器停止响应,直到我重新启动服务器。我正在通过pm2运行此服务器。当我键入“pm2 monit”时,我已附加了一个指向服务器映像的链接


山塔努,为此,我认为使用
express
是一种过激行为。您可以尝试使用本机模块,也可以尝试使用相同的模块。请在下面找到一个简单的基于乒乓球的服务器的代码

const http = require("http");

http.createServer((request, response) => {
    response.setHeader("Content-Type", "application/json");
    response.write(JSON.stringify({ status: 200, message: "pong" }));
    response.end();
}).listen(8080);

我还认为,pm2集群可能会导致这方面的问题。对于此用例,本机集群可以作为pm2的替代方案

使用
pm2
尝试上述代码。如果问题仍然存在,请使用模块尝试使用本机群集

下面是使用Sakege进行的负载测试。代码在我的系统中似乎运行良好


缺少您所说的附加图像?你可以复制粘贴文本。然而,这可能是一个非常广泛的原因。取决于pm2的设置方式、机器的限制(如果在本地运行)等。可能是由于node.js是单线程的,因此服务器资源正在耗尽,它充分利用了CPU的潜力,而这正是您可能需要堆叠infra的地方。另外,我看不到pm2 monit映像的链接?活动句柄只是在某种程度上不断增加,并且一些HTTP连接在请求得到服务后不会关闭到某些客户端。形象link@shiva2492我看不到CPU利用率正在达到最大限制。我可以在seige中看到活动句柄的数量吗?@Agnibha-如何使用seige看到活动句柄?
const http = require("http");

http.createServer((request, response) => {
    response.setHeader("Content-Type", "application/json");
    response.write(JSON.stringify({ status: 200, message: "pong" }));
    response.end();
}).listen(8080);