Docker创建容器时默认的共享内存shm太小报错,程序无法正常运行
作者:互联网
在docker容器中训练网络,由于创建容器时默认的共享内存shared memory太小,导致程序报错:
ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
RuntimeError: Dataloader worker (pid 94597) is killed by signal: Bus error. It is possible that dataloader's workers are out of shared memory. Please try to raise your shared memory limit.
docker容器中可以使用命令查看shm值大小,df -h 。
解决方法有几种:
1、减小Dataloader中num_workers的值,直到不再报错,最小可以设置为0。
2、简单快速的方法就是重新创建容器,加上参数--shm-size 8G(或16G等),或者直接使用参数--ipc=host 。
3、修改已有容器的ShmSize的值,(这里省略)
标签:容器,报错,memory,shared,Docker,共享内存,shm 来源: https://www.cnblogs.com/booturbo/p/16341342.html