当前位置: 首页 > 面试题库 >

无法在不阻塞DigitalOcean的情况下运行多个节点子进程

田嘉澍
2023-03-14
问题内容

我一直在努力在DigitalOcean上运行多个Puppeteer实例,但运气不好。我可以使用puppeteer-
cluster之
类的工具同时运行〜5个,但是由于某种原因,整个过程几乎没有什么有用的消息。因此,我切换为在没有任何其他库的情况下生成〜5个子进程-
仅是Puppeteer本身。同样的问题。窒息而没有有用的错误。

我可以在本地很好地运行所有这些工作,但是在部署之后,我碰壁了。因此,我的直觉是这是资源/性能问题,但我不能肯定地说。

我在Digital Ocean上运行了具有1GB和3CPU的Droplet。

基本上,我只是在寻找开始对此类问题进行故障排除的方法。有什么方法可以确定我是否遇到了资源障碍?我已经尝试过pm2和DO仪表盘图,但是我觉得这些都遗漏了很多信息,否则我就完全错过了其他东西。


问题答案:

puppeteer-cluster这里的作者。没错,除了操作系统甚至其他后台任务之外,1 GB的内存可能不足以运行5个浏览器窗口(或选项卡)。

这是您应检查的资源列表:

  • 内存htop应用程序运行时使用类似的工具来检查您的内存使用情况。
  • CPU :同样,您可以使用htop3个vCPU足以容纳5个窗口。
  • 磁盘空间 :使用类似的工具df来检查磁盘上是否有足够的空间。我知道很多情况下磁盘上没有足够的空间(例如一些旧的内核填充了磁盘),而Chrome至少需要 一些 空间才能运行。
  • 网络吞吐量 :很少出现问题,但有时网络只是没有带宽来支持许多开放的浏览器。使用类似的工具nload来检查网络吞吐量。

要使用htopnload,您可以在后台(node script.js &)中启动脚本,或使用终端多路复用器(如tmux)。资源问题应该容易发现。



 类似资料:
  • 我在Scala中有一个要求,即运行一系列http调用,这些调用必须按顺序完成且不阻塞。我怎样才能做到这一点?

  • 假设我有这个方法: 我想调用这个方法,获取字符串,将该字符串转换为整数7,然后以非阻塞方式返回该整数。我该怎么做? 我试过这个,但是函数阻塞(同步): 我尝试使用代替(异步): 但是我得到了这个错误:<代码>类型不匹配:无法从int转换为Mono 那我该怎么办?

  • 我有一个存储库,它返回一个流量,并希望将结果设置为另一个需要列表的对象。有没有其他方法可以在不阻塞的情况下以列表的形式获取结果? 这座大楼正在运转,但需要很长时间。

  • 问题内容: 我想向服务器发送命令,并确定是否得到响应。 现在,我正在使用的函数,该函数会阻塞直到服务器发出响应,但我要做的就是首先确认服务器是否响应。 我尝试使用或避免此阻止,但这无济于事。 这导致我的程序陷入等待服务器响应的困境,这种情况永远不会发生。根据我对事物的理解,似乎做同样的事情。 我在此处找到的关于该主题的其他问题没有回答我的问题,所以请您回答我的问题会很好。 问题答案: 可能您所需要

  • 本文向大家介绍什么情况下会出现css阻塞?相关面试题,主要包含被问及什么情况下会出现css阻塞?时的应答技巧和注意事项,需要的朋友参考一下 css阻塞: 将html解析为dom tree 将css解析为cssom tree 将 domtree 与cssom tree 合并生成render tree 浏览器依照render tree开始布局 所以 css阻塞过程在于下载css资源以及解析生成csso

  • 本文向大家介绍什么情况下会出现js阻塞?相关面试题,主要包含被问及什么情况下会出现js阻塞?时的应答技巧和注意事项,需要的朋友参考一下 未在script 使用 async delay 属性且不是body的最后一个标签 ajax 使用了同步