我需要限制RServer / RSession在Windows 2012服务器上使用的RAM量。
我是一名系统管理员,有两名用户在我们的服务器上运行R Studio。每个R Studio都会生成一个或多个RSession.exe
进程。有时其中一个RSession.exe
进程会占用太多内存。昨天,它增长到大约60GB,几乎所有其他东西都停止了。 (我们有72 GB可用,但48 GB分配给SQL Server。)我需要确保使用R不会关闭我的服务器或影响在其上运行的其他应用程序。
的信息:
sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows Server >= 2012 x64 (build 9200)
根据某些论坛的建议,我尝试将--max-mem-size=4000M
添加到用于启动R的快捷方式中。这适用于RGUI.exe
,但不适用于RStudio.exe
。当我从memory.limit()
运行RGui
时,它会按预期返回4000
。当我从memory.limit()
运行RStudio
时,无论启动参数如何,都会返回71999
。而且,无论如何,我不确定这是设置限制的正确位置。 RStudio
这样的命令行切换会影响它生成的RSession
进程吗?
我还尝试在memory.limit(4000)
内运行RStudio
,但收到以下消息:
“Warning message: In memory.limit(4000) : cannot decrease memory limit: ignored”
我还阅读了一些关于在用户配置文件中设置内存限制的内容,但所有这些操作的说明都是面向Unix的,并且指的是我们的Windows服务器上不存在的文件和目录。 (对不起,我不是R人,只是一个可怜的系统管理员,试图让他的服务器保持活力......)
有一篇文章指出,“只是为了让你知道,2014/06/10上的support.rstudio.com:”我们已将它列入我们要调查的事项列表中并希望尽快找到解决方案“({{ 3}})。这是一个错误吗?如果是这样,有什么解决方法?如果没有,我如何限制RSession内存使用量,以免它关闭我的服务器?
谢谢你, 罗比