限制linux下R的内存使用

我们在Linux集群环境中运行R. 头节点有一些挂起时,用户无意中采取了所有的内存使用R进程。 有没有办法限制Linux下的内存使用情况? 我不想提出全球性的限制,但这可能是唯一的出路。

?"Memory-limits"建议使用ulimitlimit

有一个命令行标志:– --max-mem-size可以设置初始限制。 这可以通过使用memory.limit在会话期间由用户增加。

我创建了一个小的R包ulimit ,它允许使用与 shell中的ulimit 同样的机制来为运行中的R进程设置内存限制。 目前该软件包不能在Windows上运行 – 如果运行Windows,则使用utils软件包中的memory.limit()编辑 :它也不能在“其他”POSIX平台上工作 – ulimit -v对OS X没有影响 …

从GitHub使用安装它

 devtools::install_github("krlmlr/ulimit") 

为了将可用的内存限制在2000Mb,只需调用:

 ulimit::memory_limit(2000) 

现在:

 > rep(0L, 1e9) Error: cannot allocate vector of size 3.7 Gb 

该软件包功能,但在一个非常早期的阶段。 Windows的支持计划,但尚未实施。 反馈是非常感谢!