sea*_*avi 12 linux memory-management r
我们在Linux集群环境中运行R. 当用户无意中使用R进程占用所有内存时,头节点有几个挂起.有没有办法限制Linux下的R内存使用?我宁愿不建议全球性的ulimits,但这可能是前进的唯一途径.
krl*_*mlr 10
我创建了一个小的R包,ulimit它允许使用在shell 中使用的相同机制为正在运行的R进程设置内存限制ulimit.目前该软件包在Windows上不起作用 - 如果运行Windows,memory.limit()则从utils软件包中使用.编辑:它也不适用于"其他"POSIX平台 - ulimit -v对OS X没有影响 ...
使用从GitHub安装它
devtools::install_github("krlmlr/ulimit")
Run Code Online (Sandbox Code Playgroud)
要将R可用的内存限制为2000 MiB,只需调用:
ulimit::memory_limit(2000)
Run Code Online (Sandbox Code Playgroud)
现在:
> rep(0L, 1e9)
Error: cannot allocate vector of size 3.7 Gb
Run Code Online (Sandbox Code Playgroud)
包装是功能性的,但在很早的阶段.计划支持Windows 但尚未实现.非常感谢您的反馈!
?"Memory-limits"建议使用ulimit或limit.
有一个命令行标志:--max-mem-size可以设置初始限制.用户可以在会话期间通过使用来增加这一点memory.limit.