易妖游戏网
您的当前位置:首页如何修改容docker容器的shmsize共享内存大小

如何修改容docker容器的shmsize共享内存大小

来源:易妖游戏网

很多同学在docker里面运行程序时会得到这样的错误

RuntimeError: DataLoader worker (pid 6209) 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.

这种错误的原因是共享内存不足。通过该指令查看:

ipcs -al

/*会得到:

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4091826
max total shared memory (pages) = 2097152
min seg size (bytes) = 1

*/

最简单的办法是重新新建一个容器,在run的时候添加参数:
–shm-size 6G
这样即可,如果不想这么做可以继续看:

1. 在容器中查看大小:

.

df -h | grep shm

内存远远不够

首先要关闭docker, 否则下面的操作步骤会无效!!

service docker stop

2. 进入宿主机中修改Host.json

/var/lib/docker/containers
ls

查看你的docker容器的id:

docker ps

之后进入该文件的配置文件夹:

cd askdhadh(要修改的容器的id)

3. 修改hostconfig.json

vim hostconfig.json

之后

保存退出

4. 然后重启docker服务

// 停止docker服务
systemctl stop docker  
// 再开启
systemctl start docker  

//或者
systemctl restatrt docker

//或者
service docker stop
service docker start

进入容器查看就发现修改好了啦

因篇幅问题不能全部显示,请点此查看更多更全内容