Nodejs服务器仅在从SSH终端拒绝进程并关闭会话后才会崩溃,进程运行但CPU过载

juzqafwq  于 2023-06-29  发布在  Node.js
关注(0)|答案(1)|浏览(141)

我在远程ubuntu服务器上运行nodejs服务器。由于一些奇怪的原因,当我否认SSH隧道中的进程,然后关闭终端,然后尝试使用该网站,服务器完全锁定,然后如果我重新打开SSH隧道或有第二个运行相同的时间,我可以使用ps aux看到CPU运行到最大负载。
这只发生在我否认并退出SSH隧道之后,让隧道打开可以保证服务器在几个小时内保持稳定,然后我可以通过关闭与进程否认的会话并刷新页面来重现这一点。如果我关闭了第二个没有启动进程的SSH终端,这不会有任何影响,只有在关闭了启动节点进程的SSH隧道之后。
这是基本的工作流程,对我来说每次都重现这个bug:
通过SSH隧道连接到Ubuntu服务器:运行node server.js &,然后运行disown -h,然后关闭SSH刷新页面等一下,服务器被锁定,或者立即重新打开SSH隧道,看到CPU负载通过ps aux从零上升到100%。服务器是完全稳定的,否则,直到我关闭了终端,没有问题,本地或远程,否则,服务器本身是不复杂的。
尝试GPT的意见,它说可能有一些资源问题与SSH隧道和运行节点进程,但这并没有真正帮助我找到一个解决方案。
如果它工作,我应该没有问题否认进程和关闭SSH隧道离开服务器运行。我以前从未遇到过这个问题。

but5z9lq

but5z9lq1#

我认为这种行为表明可能存在与SSH隧道和运行Node.js进程相关的连接或资源问题。我可以给予你一些进一步调试的建议:
1.检查所有错误消息:当服务器锁定或崩溃时,可能会生成错误消息或日志,这些消息或日志可以提供对问题的深入了解。
1.监视系统资源:在关闭SSH隧道之前和之后,监控系统资源,如CPU、内存和网络使用情况。这可以帮助识别可能导致问题的任何异常资源消耗或瓶颈。
1.检查SSH配置:检查服务器端和客户端的SSH配置。检查是否有任何可能影响SSH隧道或Node.js进程稳定性的特定设置或限制。
1.考虑使用流程管理器:与其手动运行Node.js进程并否认它,您可以尝试使用PM2等进程管理器。另外,不要忘记始终检查依赖项。

相关问题