首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sidekiq Worker在排队后需要很长时间才能执行(4 -6秒)

Sidekiq Worker在排队后需要很长时间才能执行(4 -6秒)
EN

Stack Overflow用户
提问于 2014-07-15 10:26:47
回答 2查看 2.6K关注 0票数 1

我有一个侧边站的工人,排队约15 - 20个不同类型的工人的工作。当我转到New Relic的事务时,排队的每个工作线程在执行之前都要花费4-6秒。我的ActiveRecord池是25,Sidekiq20并发运行,有1个独角兽进程。

我在rails控制台中对这个worker进行了基准测试,代码的运行时间不到2秒(它做了一些繁重的处理)。有了这个奇怪的4-6秒的延迟,New Relic在6-8秒的执行中获得了这个worker的事务。

我用NewRelic::Agent::MethodTracer检查了slow worker的执行方法,分组的代码块试图更好地了解什么会这么慢,但New Relic仍然显示worker在到达任何分组块之前有4 -6秒的时间。

在perform方法中,所有带有跟踪器的分组代码块都在100ms以下。

我不确定是什么原因导致每个工作人员4到6秒的停顿--在运行sidekiq作业时,内存使用率通常在50 - 60%左右(1 gig时有2个数字海洋水滴),磁盘I/O和CPU始终不会达到60%以上。

我的应用程序运行在Rails 4.1.4、Ruby 2.0、Postgres、Unicorn、Nginx和Redis上

EN

回答 2

Stack Overflow用户

发布于 2014-07-15 12:12:06

您已经测试过单线程操作非常快,但是当一堆作业并行执行时,它真的很慢。当作业正在争夺对共享资源的独占访问时,这是典型的情况。

票数 6
EN

Stack Overflow用户

发布于 2014-07-15 19:19:39

您是否正在使用分析器测量执行时间?我们也在这里查看排队时间。这是这种差异最可能的解释。然而,为了真正准确地了解正在发生的事情,还需要更多的信息。

如果你想更深入地了解你的Sidekiq工作,我建议你安装Sidekiq插件,你可以在这里找到:http://newrelic.com/plugins/steven-eksteen/131

如果您有任何进一步的问题,请联系我们的support.newrelic.com,我们将准备好您的帐户信息,以帮助您。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24748969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档