【问题标题】:Puppeteer creates a large number of cache files in /tmp when used in RendertronPuppeteer 在 Rendertron 中使用时会在 /tmp 中创建大量缓存文件
【发布时间】:2021-07-11 19:43:04
【问题描述】:

我们在我们的一个站点上使用 Rendertron 进行服务器端渲染,但我们遇到了 puppeteer 创建的文件的问题。

我们将 Rendertron 缓存设置为“内存”,限制为 500,这似乎可以正常工作。 但即使在 Rendertron 中将缓存设置为内存,底层 puppeteer 进程也会在 /tmp/puppeteer_dev_chrome-[profileId]/Default/Cache 目录下创建数万个文件。

当有大量请求访问 Rendertron 时,这会导致问题。磁盘 I/O 将很快达到 100%,然后服务器将变得无响应。

我们已经尝试研究可以传递给 puppeteer 的标志(在此处找到 https://peter.sh/experiments/chromium-command-line-switches),但我们似乎无法找到一个(或多个)可以解决我们问题的标志。

有没有人曾经使用 rendertron 进行 SSR 并遇到过这种问题?任何形式的帮助将不胜感激。

【问题讨论】:

    标签: node.js puppeteer chromium server-side-rendering rendertron


    【解决方案1】:

    我最近在 GCP 上遇到了这个问题,尽管我们已将缓存设置为内存,但我们的 iops 在渲染框上被 /tmp 使用消耗掉了。最好的办法是通过利用 tmpfs 将 RAM 与存储空间用于 /tmp 数据。以下是 /etc/fstab 中利用 tmpfs 的“安全”1GB /tmp 的示例:

    tmpfs /tmp tmpfs mode=1777,nosuid,nodev,size=1g 0 0
    

    添加 fstab 条目后,只需“挂载 /tmp”,然后使用与之前的 /tmp 关联的所有打开文件句柄重新启动服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多