在Linux下限制R中的内存使用量

时间:2012-09-25 12:17:08

标签: linux r memory-management

我们在Linux集群环境中运行R.当用户无意中使用R进程占用所有内存时,头节点有几个挂起。有没有办法限制Linux下的R内存使用?我宁愿不建议全球性的ulimits,但这可能是前进的唯一途径。

2 个答案:

答案 0 :(得分:9)

我创建了一个小型R包ulimit,它允许使用the same mechanism为正在运行的R进程设置内存限制,ulimit -v has no effect on OS X也用于shell中的ulimit。目前该软件包无法在Windows上运行 - 如果您运行Windows,请使用memory.limit()软件包中的utils编辑:它也不会在"其他" POSIX平台 - planned ...

使用

从GitHub安装
devtools::install_github("krlmlr/ulimit")

要将R可用的内存限制为2000 MiB,只需调用:

ulimit::memory_limit(2000)

现在:

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

该软件包功能齐全,但处于初期阶段。对Windows的支持是{{3}},但尚未实现。非常感谢您的反馈!

答案 1 :(得分:8)

?"Memory-limits"建议使用ulimitlimit

有一个命令行标志:--max-mem-size,可以设置初始限制。用户可以在会话期间使用memory.limit增加此功能。