当超过 300 人同时使用 Node.js 应用程序时,该应用程序会崩溃

当超过 300 人同时使用 Node.js 应用程序时,该应用程序会崩溃

我有一个在 Digital Ocean MEAN droplet 上运行的 node.js 应用程序。当超过 300 人同时访问它时,它就会挂起。起初我注意到它一次打开了 1000 多个文件。我已经将一堆静态图像移动到 Amazon S3 来帮助解决这个问题,并提高了 ulimit 中的限制(临时修复以防止服务器完全死机)。我联系了 Digital Ocean,他们说服务器应该能够处理流量。

只是想知道我应该采取什么步骤来弄清楚为什么会发生这种情况。

我可能做错了一些事情:

  • 我仍在从节点服务器提供一些静态文件。我计划将其减少到尽可能低的水平。
  • 我没有为其设置反向代理(nginx、haproxy 等)。
  • 数据库与 node.js 应用程序在同一台服务器上运行。

如果您希望我提供任何其他信息,请提出。我很乐意这样做。

答案1

  1. 如果你正在提供静态内容,请将其交给 nginx 来提供内容,正如 @codephobia 提到的那样
  2. 查找任何具有同步功能的功能,看看是否可以将其删除
  3. 您是否关闭了文件流?据我所知,node 有 255 个打开的文件句柄,而您可能已经用完了这些句柄。

如果不看的话,我帮不上忙。先生,您下一步要做的是获取一个新的 Relic 帐户并将其集成到您的网站中,以开始记录问题并查明问题的根源。

相关内容