无法在节点'node [1644]的ubuntu v服务器上启动多个线程:pthread_create:资源暂时不可用'

问题描述 投票:0回答:1

该虚拟服务器具有8GB RAM,4个内核,Ubuntu 18.04,应该能够处理多个线程。通过ssh连接两次或使用node和concurrently启动react-express应用时,会出现pthread_create: Resource temporarily unavailable错误。

ps最多返回不到50个进程:

ps --no-headers auxwwwm | cut -f1 -d' ' | sort | uniq -c | sort -n
      2 message+
      2 systemd+
      4 postfix
      4 syslog
      8 www-data
     30 root
     46 my_user

在这一点上,对我而言几乎没有任何事情可做。我的ulimit -u是62987。我没有搜索解决任何问题。不知何故,我在同时运行的进程数量上受到限制,但是我不知道如何解决这个问题。

我得到的一些错误日志是:spawn nodemon EAGAINnode[1706]: pthread_create: Resource temporarily unavailablenpm err syscall spawn sh

我认为服务器应该可以轻松地一次处理两个节点应用程序。而且不断变化的错误消息对我没有帮助。

编辑:当一个简单的节点应用程序已在运行时,它也不允许我启动mongodb或MariaDB。

编辑:ulimit -a的结果

ulimit -a
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-m: resident set size (kbytes)      unlimited
-u: processes                       62987
-n: file descriptors                1024
-l: locked-in-memory size (kbytes)  16384
-v: address space (kbytes)          unlimited
-x: file locks                      unlimited
-i: pending signals                 1545098
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 0
-N 15:                              unlimited

我想念的是什么,可以做什么?

node.js multithreading ubuntu pthreads
1个回答
0
投票

我无法发表评论,因此我必须在此处写一个答案以尝试进行故障排除。

您是否可以在不启动节点服务的情况下尝试启动MongoDB和MariaDB或其他?您说您的节点应用程序很简单,实际上没有任何意义。此步骤测试您的程序是否引起了问题。

或者您可以尝试使用此简单的HTTP服务器:

const http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end("hello world!");
}).listen(8080);

如果您可以启动多个标准程序,则意味着您的程序有问题。

如果不能,可能是您的虚拟服务器,请尝试与提供商联系。

© www.soinside.com 2019 - 2024. All rights reserved.