简洁版本
有没有办法阻止R在unix机器上使用任何虚拟内存?无论何时发生,都是因为我搞砸了然后我想中止计算。
更长的版本
我正在与其他几个人共享的强大计算机上处理大数据集。有时我会设置需要比可用内存更多RAM的命令,这会导致R开始交换并最终冻结整个机器。通常我可以通过设置一个来解决这个问题 ulimit
在我的 ~/.bashrc
ulimit -m 33554432 -v 33554432 # 32 GB RAM of the total 64 GB
这导致R抛出错误并在尝试分配比可用内存更多的内存时中止。但是,如果我在并行化时(通常使用 snow
包) ulimit
没有任何影响,机器无论如何都会崩溃。我猜那是因为 snow
将工作程序作为不以bash运行的单独进程启动。如果我试着设置 ulimit
在我的 ~/.Rprofile
我刚收到一个错误:
> system("ulimit -m 33554432 -v 33554432")
ulimit: 1: too many arguments
有人可以帮我找到实现这个目标的方法吗?
侧轨道
为什么我不能设置 ulimit
0个虚拟内存 bash
?
$ ulimit -m 33554432 -v 0
如果我这样做很快就会关闭。