15

我们在 linux 集群环境中运行 R。当用户无意中使用 R 进程占用了所有内存时,头节点有几次挂起。有没有办法限制linux下的R内存使用?我宁愿不建议使用全局 ulimit,但这可能是唯一的出路。

4

2 回答 2

13

unix::rlimit_as()允许使用在 shell中也使用的相同机制为正在运行的 R 进程设置内存限制。不支持ulimitWindows 和macOS 。

在我的.Rprofile我有

unix::rlimit_as(1e12, 1e12)

将内存使用限制为 ~12 GB。

在那之前...

ulimit我创建了一个具有类似功能的小型 R 包。

使用从 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
于 2014-06-29T10:44:44.400 回答
8

?"Memory-limits"建议使用ulimitor limit

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

于 2012-09-25T12:53:29.310 回答