【问题标题】:Run many low traffic webapps on a single machine so that a webapp only starts when it is needed?在一台机器上运行许多低流量的 webapp,以便 webapp 只在需要时启动?
【发布时间】:2020-12-06 20:02:13
【问题描述】:

我正在开发几个用 node.js 编写的不同 web 应用程序。每个 webapp 的流量都很小(可能每天有几个 HTTP 请求),所以我在一台机器上运行它们,并使用 haproxy 作为反向代理。似乎每个 webapp 都消耗了将近 100MB 的 RAM 内存,当你有许多 webapps 时,这会增加很多。因为每个 webapp 接收的流量太少,我想知道是否有办法让所有 webapps 默认关闭,但设置为如果有传入的 HTTP 请求它们会自动启动(如果没有,则再次关闭)某个固定时间段内的任何 HTTP 请求)。

【问题讨论】:

  • 简单地向机器添加交换空间可能会产生大致相同的效果;不使用的应用程序将被换掉。
  • 啊交换对我来说是一个不错的解决方案。不幸的是,我在无法轻松配置自定义交换大小的云机器上运行。

标签: node.js reverse-proxy inetd


【解决方案1】:

是的。这十几种不同的方法来处理这个问题。如果没有更多细节,则不确定处理此问题的最佳方法。一种选择是使用节点 VM https://nodejs.org/api/vm.html 另一种是某种无服务器设置。请参阅:https://www.serverless.com/ 老实说,如今 100MB 的内存价格是九牛一毛。快速谷歌以 32 美元的价格显示 16GB 内存,或者换一种说法,160 个节点的应用程序。我猜你可以在 eBay 或类似的网站上找到更优惠的价格。

在外面学习这完全是浪费时间。您的时间比设置它所需的努力更有价值。如果您只在美国赚取最低工资,那么您只需不到 4 小时就可以收回公羊的成本。最好去学习 Docker/k8s 并将每个应用程序容器化。也就是说,学习 Serverless 会很好地利用时间。

【讨论】:

  • 如果您的服务器在云中,那么获得更多内存比购买 RAM 本身的成本要昂贵得多。
  • 确实如此,但无服务器/Lambda 将是可行的方法。
  • node VM 听起来更像是一个 API,而我正在寻找一些可以让我在不修改的情况下运行现有应用程序的工具。我看了一点无服务器,但这似乎也需要重写我的应用程序(大多数应用程序都是 node express webapps)。我可以为这些应用程序编写 docker 文件,但这会给我什么? afaik docker 没有任何“当 HTTP 流量到达时启动 docker 容器”功能,对吧?也许有一些与docker相关的工具可以做到这一点?
猜你喜欢
  • 1970-01-01
  • 2016-11-26
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 2019-03-25
  • 2014-08-31
  • 2021-10-16
  • 2011-11-25
相关资源
最近更新 更多