如何为我的 rails 应用程序扩展 sidekiq 性能。需要每秒运行 100 个 sidekiq 作业

Nav*_*ori 4 optimization performance ruby-on-rails sidekiq sidekiq-monitor

我有一个要求,我应该能够每秒运行 100 个 sidekiq 作业。我将服务器容量增加到 8 个 CPU 并创建了 4 个 sidekiq 进程,但它仍然每分钟服务 50 个作业。我不确定我在哪里

Nav*_*ori 5

我得到了这个问题的解决方案,因此回答了我的问题。

我正在使用 sidekiq 4。根据 sidekiq 文档,这个版本的 sidekiq 能够每秒运行 800 个作业。

所以我刚刚写了一个没有逻辑的虚拟工人并创造了大约 10 万个工作岗位。这些作业以每秒 666 个作业的速度运行。

所以我得出的结论是,影响性能的不是 sidekiq 配置,而是我的工作逻辑需要更多时间来执行工作。

我开始优化 sidekiq 工作逻辑并减少其执行时间。它对我有用

现在我可以每秒为 1 个 sidekiq 进程运行 30 个作业。如果我们增加 sidekiq 进程,那么每秒的作业数量也会增加。

这就像(每秒作业数)*(sidekiq 进程数)。

最后,始终创建轻量级工作者,显着提高 sidekiq 性能然后去增加服务器容量