我正在运行一个似乎没有足够内存的docker容器,我不知道如何解决这个问题。
我基本上在这个docker容器上运行一个程序,它将图像下载到tmpfs中,执行一些操作,删除图像并返回结果。但是,我似乎遇到的图像太大而无法存储在我当前的docker tmpfs中。下面是容器内的linux df
命令的输出:
Filesystem Size Used Avail Use% Mounted on
overlay 63G 11G 50G 18% /
tmpfs 64M 0 64M 0% /dev
tmpfs 6.9G 0 6.9G 0% /sys/fs/cgroup
/dev/sda1 63G 11G 50G 18% /etc/hosts
shm 64M 4.0K 64M 1% /dev/shm
tmpfs 6.9G 0 6.9G 0% /sys/firmware
我尝试过扩展docker的记忆(因此在两个tmpfs' s上有巨大的价值),但我仍然遇到这个问题。
我想我有几个问题:
1)3个独立的tmpfs文件系统有什么区别?它们为什么存在?
2)据推测,我需要扩展第一个tmpfs大小(小的) - 我将如何做到这一点?
最后,一些相关的系统信息:
OS - OSX
Docker版本 - Docker版本17.09.0-ce,构建afdb6d4
让我知道您是否还需要了解其他内容!
谢谢大家。
答案 0 :(得分:4)
好的,最终找到了答案。我最初的两个问题有点偏离基础。
基本上,我的docker实例没有足够的内存 - tmpfs文件是红色的鲱鱼。我最终需要将--shm-size="4096m"
参数传递给我的docker start命令(增加内存到4096兆字节),以便让我的函数正确执行。希望这可以帮助有人在路上!
此外,出于谷歌的目的,我得到的确切错误是There is not enough space available on the shmfs/tmpfs file system.
与Abbyy FineReader有关
答案 1 :(得分:0)
如果使用Kubernetes,则/ dev / shm中需要足够的空间。 在我的情况下,/ dev / shm中没有足够的空间,因此Abbyy将在提取元图像之前进行纾困。给/ dev / shm进行卷装载后,它可以正常工作。希望这会有所帮助!