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

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

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

答:不。

不幸的是,这是不可能的(但?)与appengine。 这个问题已经不止一个人了。 出于某种原因,/ dev / shm的容器默认是非常小的。

…但还有其他的select

如果你想运行的进程能够configuration它使用的tmpfs的位置,那么你可以创build一个tmpfs,并简单地指向它。 铬不能做到这一点。

选项1

如果你想部署一个容器谷歌云,一个选项是使用容器引擎 。 然后,您可以像这样安装一个tmpfs卷给你的豆荚:

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

Kubernetes的学习曲线相当陡峭,但它可以让你取消/ dev / shm上的限制。

选项2

有一个新function可以让你将容器部署到计算引擎 ,但是它目前是alpha版本,你需要申请才能将你的项目列入白名单来使用这个function。

选项3

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


从飞机的评论更新

选项#4

如果目标是在应用引擎上灵活地运行一个完整的浏览器,那么在Docker中,新版本的Firefox将无处不在运行。

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

我知道,如果可以在App Engine Flex中增加/ dev / shm的大小,您已经查询过。

不幸的是,这是不可能的。 由于Flex是被pipe理的虚拟机,所以维护默认值。 你可以尝试在你的dockerfile上手动创build一个命令来通过“sudo”来改变共享caching,但是不能保证,所以我不能说它可能会工作,如果你使用的是自定义运行时,那么还是值得一试。别无退路。