如何在 App Engine Flexible 中更改 /dev/shm 的大小

How to Change the Size of /dev/shm in App Engine Flexible

如何在 App Engine 柔性应用程序中更改共享内存文件夹 /dev/shm 的大小?

默认设置为 64M,对于 运行 许多应用(例如 chrome)来说太低了。我看不出有什么办法可以改变它。如果您有权访问 docker run command,则可以通过多种方式更改它,但我们在启动 App Engine 灵活应用时没有此类访问权限。

这是我从 Google 支持(支持 ID 13757624)收到的答复:

I understand that you have inquiry if it would be possible to increase the size of /dev/shm in App Engine Flex.

Unfortunately, this isn't possible. Since Flex is managed VM the default value is maintained. You may try to create manually a command on your dockerfile to change the shared cache via 'sudo' but there's no guarantee so I can't say that it will possibly work, still worth a try given that you are using custom runtimes otherwise, there's no other way.

答:没有

不幸的是,这在 appengine 中是不可能的(现在?)。不止一些人 运行 关注这个问题。出于某种原因,/dev/shm 的默认容器非常小。

...但还有其他选择

如果您想要 运行 的进程能够配置它使用的 tmpfs 的位置,那么您可以 create a tmpfs 并将其指向那里。 Chromium 无法做到这一点。

选项 1

如果要将容器部署到 google 云,一种选择是使用 container engine。然后,您可以像这样将 tmpfs 卷安装到 pods:

spec:
  volumes:
  - name: dshm
    emptyDir:
      medium: Memory
  containers:
  - image: gcr.io/project/image
    volumeMounts:
      - mountPath: /dev/shm
        name: dshm

Kubernetes 的学习曲线相当陡峭,但它可以让您突破 /dev/shm.

的限制

选项 2

有一个新功能可以让您deploy containers to compute engine,但它目前处于 alpha 阶段,您需要申请将您的项目列入白名单才能使用此功能。

选项 3

当然,您可以通过使用 COS (container optimized os)

创建 GCE 实例,以更手动的方式将容器部署到 GCE

根据 speedplane 的评论更新

选项#4

如果目标是 运行 一个在 App Engine 上灵活的完整浏览器,那么新版本的 Firefox 运行 在 headless 中就很好 Docker.