我有 16 个 resque 队列,当我尝试查看这些队列的内存分配时,它显示这些队列的每个队列都有 4% 的内存。但当时所有这些队列都是空的。因此,在我 100% 的内存中,近 64% 被环境负载本身使用。这就是我的感觉。
我的疑问是 1. 这些 resque 队列中的每一个是否会分别将完整的应用程序加载到内存中。
- 如果是,我是否可以对 resque 配置进行任何更改,以使所有 resque 队列都使用加载在内存中单个位置的相同环境。
提前致谢
我有 16 个 resque 队列,当我尝试查看这些队列的内存分配时,它显示这些队列的每个队列都有 4% 的内存。但当时所有这些队列都是空的。因此,在我 100% 的内存中,近 64% 被环境负载本身使用。这就是我的感觉。
我的疑问是 1. 这些 resque 队列中的每一个是否会分别将完整的应用程序加载到内存中。
提前致谢
如果您使用 Resque,我认为您不走运。我相信这就是为什么Sidekiq被开发为几乎可以替代 Resque 的原因。Sidekiq 的作者写了一篇博客文章,描述了他如何提高 Resque 的内存使用率。以下是Sidekiq 常见问题解答中的一些内容:
为什么 Sidekiq 优于多线程 Resque?
回到碳五,我致力于改进 Resque 以使用线程而不是分叉。该项目是 Sidekiq 的基础。我建议在 Resque 的那个分支上使用 Sidekiq,原因如下:
- MT Resque 是碳五客户的一次性产品,不受支持。有许多错误没有解决,例如 Web UI 的工作线程显示,因为它们对客户端并不重要。
- Sidekiq 是从头开始构建的,通过赛璐珞使用线程。
- Sidekiq 有中间件,它可以让你在工作生命周期内做一些很酷的事情。Resque 本身不支持这样的中间件。
简而言之,MT Resque:为客户节省大量资金的快速技巧,Sidekiq:针对同一问题的精心设计的解决方案。