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

spe*_*ane 5 google-app-engine shared-memory docker app-engine-flexible

如何更改/dev/shmApp Engine 柔性应用中共享内存文件夹的大小?

默认情况下它设置为 64M,太低而无法运行许多应用程序(例如,chrome)。我看不出有什么办法可以改变它。如果您有权访问docker run 命令,则有多种方法可以更改它,但在启动应用引擎灵活应用程序时,我们没有此类访问权限。

pos*_*abs 3

答:没有。

不幸的是,这对于 appengine 来说还不可能(还?)。不少人都遇到过这个问题。由于某种原因,/dev/shm 的容器默认值非常小。

...但还有其他选择

如果您要运行的进程能够配置它使用的 tmpfs 的位置,那么您可以创建一个 tmpfs并将其指向那里。铬不能做到这一点。

选项1

如果您想将容器部署到谷歌云,一种选择是使用容器引擎。然后,您可以将 tmpfs 卷安装到您的 pod,如下所示:

spec:
  volumes:
  - name: dshm
    emptyDir:
      medium: Memory
  containers:
  - image: gcr.io/project/image
    volumeMounts:
      - mountPath: /dev/shm
        name: dshm
Run Code Online (Sandbox Code Playgroud)

Kubernetes 有一个相当陡峭的学习曲线,但它允许您解除 /dev/shm 的限制。

选项2

有一个新功能允许您将容器部署到计算引擎,但它目前处于 alpha 阶段,您需要申请将您的项目列入白名单才能使用此功能。

选项3

当然,您可以通过使用COS(容器优化操作系统)创建 GCE 实例,以更手动的方式将容器部署到 GCE


从 speedplane 的评论更新

选项#4

如果目标是在灵活的应用程序引擎上运行完整的浏览器,那么新版本的 Firefox 在 Docker 中以无头方式运行就很好了。