4

我正在运行一个似乎内存不足的 docker 容器,我不知道如何解决这个问题。

我实际上是在这个 docker 容器上运行一个程序,它将图像下载到 tmpfs,执行一些操作,删除图像并返回结果。但是,似乎我遇到的图像太大而无法存储在我当前的 docker tmpfs 中。以下是df容器内 linux 命令的输出:

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 的值很大),但我仍然遇到这个问题。

我想我有几个问题:

1) 3 个独立的 tmpfs 文件系统有什么区别?它们为什么存在?

2)大概我需要扩大第一个 tmpfs 大小(小的)——我将如何去做呢?

最后,一些相关的系统信息:

操作系统——OSX

Docker 版本——Docker 版本 17.09.0-ce,构建 afdb6d4

让我知道您是否还有其他需要了解的内容!

感谢大家。

4

2 回答 2

5

好吧,终于找到答案了。我最初的两个问题有点离题。

本质上,我的 docker 实例没有足够的内存—— tmpfs 文件是红鲱鱼。我最终需要将一个--shm-size="4096m"参数传递给我的 docker start 命令(将内存增加到 4096 兆字节),以允许我的函数正确执行。希望这对未来的人有所帮助!

此外,出于谷歌的目的,我得到的确切错误There is not enough space available on the shmfs/tmpfs file system.与 Abbyy FineReader 有关

于 2017-11-22T00:22:22.147 回答
0

如果您使用的是 Kubernetes,那么您需要在 /dev/shm 中有足够的空间。就我而言,/dev/shm 中没有足够的空间,因此 Abbyy 会在提取元图像之前退出。在给 /dev/shm 一个卷挂载后,它工作正常。希望这可以帮助!

于 2019-11-14T00:22:50.473 回答