我在MacOS上的Python进程完全忽略了我设置的rlimits。 (我通过打印确认它们已被设置)MacOS上的Python完全忽略rlimit
物理内存使用率高于2.4Gb,此时CPU使用率下降5%并且挂起。 (潜在的罪魁祸首似乎是numpy数组的分配,但我不能强制一个OutOfMemory
例外,以查明在哪里,所以我卡住了)。这是怎么回事?我认为硬性限制不容忽视?
编辑:它发生在我身上,违规分配不是在本机Python中完成的,但在numpy或scikit-learn。链接到source of cpython:Modules/resource.c如果是这样,那将是一个确定的docbug。
import resource
resource.setrlimit(resource.RLIMIT_AS, (1*1048576L, 1.2*1048576L))
resource.setrlimit(resource.RLIMIT_DATA, (1*1048576L, 1.1*1048576L))
resource.setrlimit(resource.RLIMIT_STACK, (100000, 120000))
版本:在MacOS 10.8.2,py27-numpy的python2.7.3(MacPorts的,64b)。
机器有4Gb物理RAM。