4

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があります。

4

1 に答える 1

0

問題のある割り当てはネイティブPythonではなく、numpyまたはscikit-learnのいずれかで行われていることに気付きました。私の割り当てコードは、一時的にメモリをリークしている可能性があります。調査します。gcを確認する必要があるかもしれません。

この場合、リソースのdocbugのように聞こえます。

cpython:Modules/resource.cのソースへのリンク

于 2013-03-28T22:41:55.603 に答える