【问题标题】:How to Change the Size of /dev/shm in App Engine Flexible如何在 App Engine Flexible 中更改 /dev/shm 的大小
【发布时间】:2017-09-25 21:38:58
【问题描述】:

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

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

【问题讨论】:

  • 您也应该为此查询谷歌支持。关于定制的文档并不多
  • 所以这不是一回事,但如果有帮助,您可以创建 tmpfs 卷。 cloud.google.com/appengine/docs/flexible/nodejs/…
  • @ZachFewtrell 如果您能够挂载到 /dev/shm 将会有所帮助。我试过了,还是不行。

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


【解决方案1】:

答:没有。

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

...但还有其他选择

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

选项 1

如果您想将容器部署到谷歌云,一种选择是使用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

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

【讨论】:

  • 我会添加选项#4(这是我选择的)...如果目标是在应用引擎上灵活运行完整的浏览器,那么新版本的 Firefox 可以在无头模式下运行就好了在 Docker 中。
  • 我还要补充一点,在升级到更新版本的 Firefox 后,我开始遇到这个问题。也许较新的版本使用更多的共享内存?适合我的版本是 Firefox 56.0.2 和 Geckodriver v0.19.1。
【解决方案2】:

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

我了解您有疑问是否可以增加 App Engine Flex 中 /dev/shm 的大小。

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

【讨论】:

    猜你喜欢
    • 2020-03-07
    • 2018-08-01
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    相关资源
    最近更新 更多