Мой процесс Python на MacOS полностью игнорирует rlimits, ниже которого я устанавливаю. (Я подтвердил печать, что они были установлены)Python на MacOS полностью игнорирует rlimit
Использование физической памяти превышает 2,4 ГБ, после чего загрузка процессора падает < < 5% и он висит. (Основной виновник, по-видимому, представляет собой многоуровневое распределение массива, но я не могу заставить исключение OutOfMemory
указать, где, так что я застрял). Что происходит? Я думал, что жесткие ограничения нельзя игнорировать?
EDIT: мне приходит в голову, что оскорбительное выделение не выполняется на родном Python, но либо в numpy, либо в scikit-learn. Ссылка на source of cpython:Modules/resource.c Если это так, это будет определенный докбуг.
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))
Версии: python2.7.3 (MacPorts, 64b) на MacOS 10.8.2, PY27-NumPy.
Машина имеет 4 ГБ физической памяти.