0

下面是我的pstree命令的输出。我有 2 个独角兽工人,Sidekiq 运行并发设置为 25。

检查我的应用程序目录中的 pid,我知道 10366 是 sidekiq,974 是 unicorn master

问题:

  1. 为什么 sidekiq 会产生这么多工人?
  2. 978 和 17699 在那里做什么?
  3. 如果 17698 是工人,为什么会有 17702 和 17703?(同样适用于 261​​46)

一些上下文:

cap unicorn:add_worker/remove_worker经常使用,因为我注意到内存在不断增长。这可能是工人没有被干净地移除的问题吗?

谢谢!

  ├─ruby,974
  │   ├─ruby,17698
  │   │   ├─{ruby},17702
  │   │   └─{ruby},17703
  │   ├─ruby,26146
  │   │   ├─{ruby},26150
  │   │   └─{ruby},26151
  │   ├─{ruby},978
  │   └─{ruby},17699
  ├─ruby,10366
  │   ├─{ruby},10407
  │   ├─{ruby},10408
  │   ├─{ruby},10409
  │   ├─{ruby},10410
  │   ├─{ruby},10454
  │   ├─{ruby},10455
  │   ├─{ruby},10545
  │   ├─{ruby},10806
  │   ├─{ruby},10807
  │   ├─{ruby},10809
  │   ├─{ruby},10810
  │   ├─{ruby},10811
  │   ├─{ruby},10812
  │   ├─{ruby},10813
  │   ├─{ruby},10814
  │   ├─{ruby},10817
  │   ├─{ruby},10818
  │   ├─{ruby},10819
  │   ├─{ruby},10821
  │   ├─{ruby},10824
  │   ├─{ruby},10825
  │   ├─{ruby},10828
  │   ├─{ruby},10829
  │   ├─{ruby},10830
  │   ├─{ruby},10833
  │   ├─{ruby},10836
  │   ├─{ruby},10838
  │   ├─{ruby},10839
  │   ├─{ruby},10840
  │   ├─{ruby},10843
  │   ├─{ruby},10844
  │   ├─{ruby},10860
  │   ├─{ruby},10862
  │   ├─{ruby},10863
  │   ├─{ruby},10864
  │   ├─{ruby},10866
  │   ├─{ruby},10867
  │   ├─{ruby},10872
  │   ├─{ruby},10874
  │   ├─{ruby},10878
  │   ├─{ruby},10879
  │   ├─{ruby},10881
  │   ├─{ruby},10882
  │   ├─{ruby},16646
  │   ├─{ruby},16647
  │   ├─{ruby},16648
  │   ├─{ruby},16649
  │   ├─{ruby},16650
  │   ├─{ruby},16658
  │   ├─{ruby},16659
  │   └─{ruby},16660
4

1 回答 1

2

这棵树向您展示了进程(没有大括号)和线程(在 {花括号} 中)。

一个 sidekiq 工作者有一个进程,但有 20 个线程(默认情况下)。

独角兽服务器有一个带有多个线程的主进程,并分叉 2 个后台工作进程,每个进程都有多个线程。

如果您的独角兽工作人员正在泄漏内存,则很可能是由于您的代码中存在内存泄漏。

于 2013-08-23T18:09:35.447 回答