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

时间:2017-09-25 21:38:59

标签: google-app-engine docker shared-memory app-engine-flexible

如何更改App Engine灵活应用中共享内存文件夹/dev/shm的大小?

默认情况下,它设置为64M,太低而无法运行许多应用(例如,chrome)。我认为没有办法改变它。如果您有权访问docker run command,可以通过多种方式进行更改,但在启动应用引擎灵活的应用时,我们无法获得此类访问权限。

2 个答案:

答案 0 :(得分:2)

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

  

我知道您有查询是否可以增加   App Engine Flex中/ dev / shm的大小。

     

不幸的是,这是不可能的。由于Flex是管理VM的   保持默认值。您可以尝试手动创建命令   在您的dockerfile上通过'sudo'更改共享缓存但是有   不能保证所以我不能说它可能会起作用,仍然值得一试   尝试给你使用自定义运行时,否则,没有   其他方式。

答案 1 :(得分:2)

答:否。

不幸的是,这是不可能的(但是?)与appengine。不止一些人遇到过这个问题。出于某种原因,/ dev / shm的容器默认值很小。

...但还有其他选项

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

选项1

如果要将容器部署到Google云端,可以选择使用container engine。然后,您可以将tmpfs卷安装到您的pod中,如下所示:

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引擎上灵活地运行完整的浏览器,那么新版本的Firefox在Docker中运行就好了。