当前位置: 代码迷 >> 综合 >> RuntimeError: DataLoader worker (pid XXX) is killed by signal: Bus error
  详细解决方案

RuntimeError: DataLoader worker (pid XXX) is killed by signal: Bus error

热度:20   发布时间:2023-11-28 05:24:09.0

当运行程序时发现shm不够时

不指定–shm-size参数时
即docker共享内存大小,默认共享内存为64M
使用df -h命令可以看到

Filesystem                                              Size  Used Avail Use% Mounted on
overlay                                                 196G   29G  158G  16% /
tmpfs                                                    64M     0   64M   0% /dev
tmpfs                                                    14G     0   14G   0% /sys/fs/cgroup
shm                                                      64M     0   64M   0% /dev/shm

更改shm大小有两种方案
1.修改该容器的配置文件hostconfig.json,找到参数shmsize,修改为你想要的大小。在目录/var/lib/docker/containers下,查看你的容器IDdocker ps -a,进入你的容器对应的目录。修改文件前把容器停止docker stop container
2^30 = 1073741824 = 1G
12G = 12884901888
如果发现重新启动容器时,配置文件又恢复成原来的信息。那么就要停止docker服务,修改完后配置文件,在启动docker.

service docker stop
service docker start

2.重新生成一个容器
使用命令
docker run --shm-size 8g --name test -it -v /data:/data torch /bin/bash
参数:
–shm-size 8g 共享内存8g
–name test 容器名字test
-v /data:/data 将本地电脑的目录/data挂载到容器的/data目录下,可以挂载本地的多个文件使用多个 -v参数
torch 是你的镜像名字,也可以使用镜像ID

  相关解决方案