MacOSでの私のPythonプロセスは、それ以下に設定したrlimitを完全に無視しています。(設定されていることを印刷で確認しました)
物理メモリ使用量が2.4Gbを超えると、CPU使用率が<< 5%低下し、ハングします。(根本的な原因は配列の割り当てが多すぎるようですが、OutOfMemory
例外を強制してどこを特定することはできないので、行き詰まっています)。どうしたの?ハードrlimitsは無視できないと思いましたか?
編集:問題のある割り当てはネイティブPythonではなく、numpyまたはscikit-learnのいずれかで行われていることに気付きました。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のpython2.7.3(macports、64b)、py27-numpy。
マシンには4Gbの物理RAMがあります。