Memory 在python中打开数百万个numpy.memmaps
我有一个由数百万个培训示例组成的数据库。每个都保存为自己的Memory 在python中打开数百万个numpy.memmaps,memory,python,memory-limit,ulimit,Memory,Python,Memory Limit,Ulimit,我有一个由数百万个培训示例组成的数据库。每个都保存为自己的numpy.memmap。(是的,是的,我知道,但它们的大小不规则。我可能会修改我的设计,将类似大小的示例放在一个memmap中,并向用户隐藏这一事实。) 试图打开此数据库会导致我运行到系统NOFILESlimits 现在我运行到OSError:[Errno 12]在创建了大约64865个memmaps之后无法分配内存,并且在该点之后执行大多数其他代码会导致内存错误。这很奇怪,因为进程在失败之前只需要1.1gib的内存,而这个服务器有近1
numpy.memmap
。(是的,是的,我知道,但它们的大小不规则。我可能会修改我的设计,将类似大小的示例放在一个memmap中,并向用户隐藏这一事实。)
试图打开此数据库会导致我运行到系统NOFILES
limits
现在我运行到OSError:[Errno 12]在创建了大约64865个memmaps之后无法分配内存
,并且在该点之后执行大多数其他代码会导致内存错误
。这很奇怪,因为进程在失败之前只需要1.1gib的内存,而这个服务器有近100gib的内存
我已经在一个目录中保存了一百万个虚拟文件,并用python的标准open
函数打开了它们,它工作得很好。在文件句柄和内容之间需要大约5Gib的内存,但它可以工作
什么会限制我只打开大约2^16个内存映射