docker修改shm-size

当在Docker容器内运行深度学习模型遇到shm错误时,通常是由于shm大小设置过小。解决方法包括:一是创建新容器时通过`--shm-size 4G`参数设定;二是如果已有容器,需要停止容器和Docker服务,编辑容器的`hostconfig.json`文件增大ShmSize,然后重启Docker服务和容器。确保 shm-size 能满足深度学习模型的内存需求。

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

在docker容器内跑深度学习模型的shm错误

报错:ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).

原因:主要是shm size太小了

在这里插入图片描述

解决办法:

方法一:删除当前容器,从新创建一个新的容器,加上参数–shm-size 4G

docker run -it --shm-size 4G 镜像名 /bin/bash

这种方法需要在创建的时候就指定,但是有时候可能在环境都配好了才发现忘了指定shm了。这时候可以用方法二。

方法二

(1) 先停止所有容器,docker stop container_ID

(2) 停止docker服务。systemctl stop docker

(3) cd /var/lib/containers/要修改的容器id,这个目录是放容器的,有可能因为改了路径有变化。

(4) vim hostconfig.json,找到ShmSize

在这里插入图片描述

​ 修改这个数字,8589934592=8x1024x1024x1024

(5) 启动docker服务。systemctl start docker

(6) 启动容器,并查看是否修改有效。df -h

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值