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

当Docker容器运行时遇到 shm不足 的问题,可以通过修改容器配置文件hostconfig.json或者重新创建容器来设置shm-size。默认共享内存为64M,可以使用`--shm-size`参数指定大小,如`docker run --shm-size 8g`创建一个共享内存为8GB的容器。记得在修改配置文件后,可能需要重启Docker服务以使变更生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当运行程序时发现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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值