如何解决Puppeteer在Rendertron中使用时会在/tmp中创建大量缓存文件
我们在我们的一个网站上使用 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 并且遇到过这种问题?任何形式的帮助将不胜感激。
解决方法
我最近在 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 相关联的任何打开的文件句柄重新启动服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。