我们有一个 OpenCPU 云服务器,安装在带有 Apache 2.0 和 rApache 的 RedHat 服务器上,它运行一些相当消耗内存和处理密集型的计算。我们的应用程序运行得相当慢(比在功能较弱的笔记本电脑上慢) - 我们认为这是因为服务器上的内存分配。出于这个原因,我们为服务器并行化了应用程序(使用parallel
包),但即使通常可以在服务器上运行许多(超过 20 个)并行 R 作业,我们的应用程序也只能运行大约 18 个。
为了了解发生了什么,我的问题是:当我通过 OpenCPU Web 界面调用 R 函数时,服务器的哪个组件创建/生成 R 进程并管理它们的内存分配?是r_mod
通过其他模块还是 Apache 服务器本身?MPM 对此有影响吗Prefork
(基于此答案)?这项工作的哪一部分是由 OpenCPU 完成的?
我阅读了 OpenCPU 文档、rApache 文档以及有关 OpenCPU 的所有 stackoverflow 问题,但我没有设法了解如何特别管理 R 进程。抱歉,如果我错过了什么,如果有人能指出这些信息的来源,我将不胜感激。