如果我们预计每月会有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成为实时分析后端的可行方法?
答案 0 :(得分:2)
Dirk是对的,这完全取决于你所调用的R函数; OpenCPU架构的开销应该非常小。 OpenCPU本身将在小型服务器上运行,但我们都知道R中的某些功能需要比其他服务器更多的内存/ CPU。
如果你真的想知道需要多少资源只是来运行opencpu你可以做一些基准测试。正如您所指出的,prefork用于分支主进程的会话,因此在大多数情况下,分叉的写时复制原则应该使它非常便宜。
还有其他一些你可以调整的东西;例如预加载经常使用的包裹。