【发布时间】:2019-08-27 17:26:48
【问题描述】:
我在 MRI/YARV Ruby 2.4.6 中使用 Sidekiq。根据 MRI GIL 的限制,我预计每个 Sidekiq 进程将仅限于一个核心。但似乎线程在不同的内核中运行,即使只启动了一个 Sidekiq 进程。
这是运行后的 htop 截图: bundle exec sidekiq -c 3 -L sidekiq.log -r ./worker.rb
https://user-images.githubusercontent.com/4698528/63443969-1c012700-c40c-11e9-85ee-9c4298c98c89.png
*3 个内核正在使用中
我读到 MRI 可以利用操作系统 pthread 在不同的内核中运行进程。这是正在发生的事情吗?这是否会改变常见策略,例如运行多个 Sidekiq 进程以使用所有处理器容量?
- 红宝石:2.4.6
- sidekiq:5.2.7
- 操作系统:ubuntu 18.04.3 服务器在 ubuntu 18.04.3 主机上在 vbox 中运行
【问题讨论】:
标签: ruby-on-rails ruby sidekiq