Python内存映射加载-错误:无法分配内存

时间:2018-12-21 10:34:46

标签: python memory joblib numpy-memmap

我正在使用Ubuntu服务器运行内存扩展进程。我的数据结构是date -d@<timestamp> +"%F %H:%M:%S数组的字典。 numpy将其作为内存映射后,文件的大小为52GB。当我使用joblib.dump重新打开文件时,出现错误-“打开的文件太多”。我想将此内存映射传递到joblib.load进行进一步的计算。

我将文件数限制增加了joblib.Parallel,这是早于1024的。现在,当我尝试加载同一文件时,它给我一个错误-ulimit -n 1000000。运行进程(使用OSError: [Errno 12] Cannot allocate memory时,我看不到任何内存增加。我很困惑,因为该进程似乎没有使用任何内存,但是却给出了内存分配错误。

这是我的proc / limits文件:

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes     
Max resident set          unlimited            unlimited            bytes     
Max processes             1031673              1031673              processes 
Max open files            1000000              1000000               files     
Max locked memory         unlimited            unlimited            bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       1031673              1031673              signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us        

似乎进程本身没有内存限制。这里可能会发生什么?

0 个答案:

没有答案