我们在Linux集群环境中运行R.当用户无意中使用R进程占用所有内存时,头节点有一些挂起。有没有办法限制Linux下的R内存使用?我宁愿不建议全球性的ulimits,但这可能是前进的唯一途径。
我们在Linux集群环境中运行R.当用户无意中使用R进程占用所有内存时,头节点有一些挂起。有没有办法限制Linux下的R内存使用?我宁愿不建议全球性的ulimits,但这可能是前进的唯一途径。
?"Memory-limits"
建议使用 ulimit
要么 limit
。
有一个命令行标志: --max-mem-size
哪个可以设置 初始 限制。这可以由用户在会话期间通过使用来增加 memory.limit
。
我创建了一个小R包, ulimit
,允许使用运行R进程设置内存限制 同样的机制 也用于 ulimit
在壳中。目前该软件包不适用于Windows - 使用 memory.limit()
来自 utils
如果你运行Windows包。 编辑:它也不适用于“其他”POSIX平台 - ulimit -v
对OS X没有影响...
使用从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是 计划 但尚未实施。非常感谢您的反馈!