在Docker容器内部运行的opencv3.0内存不足错误
OpenCV错误:OutOfMemoryError中内存不足(无法分配995522496字节)。
base_features, base_descs = detector.detectAndCompute(base_img, None)
在这个特定的行中,base_desc的长度(“len(base_descs)”)大约是70000. base_desc是一个numpy数组。 我目前使用4 GB的RAM,但仍然显示这个错误。
我正在docker容器内运行此代码,上面的代码工作正常,当我运行python代码而不使用系统中的容器。
首先,尝试运行一些docker stats
以查看容器进程执行期间的内存使用情况和容器限制。
然后,尝试增加容器的内存限制( -m
):请参阅“ 如何衡量Docker中的性能?
正如VonC所build议的,我试着运行docker统计。 我运行我的容器,并做了docker统计检查我的容器的统计数据,内存使用增加了我的容器,但有5.028GB的限制,可以看到下面
CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O gigantic_cori 0.02% 4.6 GB / 5.028 GB 2.02% 44.43 MB / 20.51 MB 580.2 MB / 3.196 GB
因此,增加RAM将是上述问题的解决scheme或优化代码,从而降低RAM的要求。 上面的问题发生在容器内部,因为运行在Guest OS(Ubuntu14.04)内的容器只有4GB的RAM,而当我在Host OS(Windows 8.1)中运行代码时,它拥有的RAM是8GB,错误没有到达那里。