我在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。