在云中托管R时的内存要求

时间:2012-11-10 20:22:53

标签: rapache opencpu

如果我们预计每月会有100,000次点击,那么我们运行opencpu所需的最小服务器是什么?

我认为opencpu是一个令人兴奋的项目,但需要了解部署opencpu时的内存使用情况,因为机架空间等云托管服务每月收取大约40美元的1 GB内存费用。

我知道如果我在没有做任何事情的情况下加载R或者没有在RAM中加载任何数据或包,它会使用近700米的RAM(虚拟)和50兆字节的RAM(驻留)。

我知道opencpu使用rApache,而rApache使用preforking,但想知道随着并发用户数量的增加,这将如何扩展。谢谢。

感谢您的回复

我在访问洛杉矶时与Jeroen Ooms进行了交谈,并且部分确信如果正确使用opencpu将在高并发环境中工作,并且如果他们出现,他可以解决问题。毕竟Opencpu与他的论文有关!特别是,我发现有关opencpu的有用之处在于它与ubuntu的AppArmor集成,后者可以限制进程使用过多的RAM和CPU。我认为apache也可以做到这一点,但RAppArmor可以做到这一点以及更多。辉煌!如果AppArmor是唯一的优势,我会使用它和json作为后端,但似乎opencpu也可以简化所有这些东西的安装并提供内置的API系统。

考虑到网络托管的成本,我认为可行的实时分析系统如下:

  • 根据需要在专业分析服务器上按需创建R统计模型(例如,使用cron每天或每小时)
  • 使用ftp将模型的结果传输到opencpu服务器上的目录,作为本机R对象
  • 在opencpu服务器上,转到目录并获取代表统计模型的R对象,然后进行预测或使用它进行模拟。例如,使用“预测”功能根据用户提供的变量提供估算值。

有没有其他人认为这是使R成为实时分析后端的可行方法?

1 个答案:

答案 0 :(得分:2)

Dirk是对的,这完全取决于你所调用的R函数; OpenCPU架构的开销应该非常小。 OpenCPU本身将在小型服务器上运行,但我们都知道R中的某些功能需要比其他服务器更多的内存/ CPU。

如果你真的想知道需要多少资源只是来运行opencpu你可以做一些基准测试。正如您所指出的,prefork用于分支主进程的会话,因此在大多数情况下,分叉的写时复制原则应该使它非常便宜。

还有其他一些你可以调整的东西;例如预加载经常使用的包裹。