0

以下は私のpstreeコマンドの出力です。2 つのユニコーン ワーカーがあり、Sidekiq は 25 に設定された同時実行数を実行しています。

アプリ ディレクトリの pid を調べると、10366 が sidekiq で、974 がユニコーン マスターであることがわかります

質問:

  1. sidekiq が多くのワーカーを生成するのはなぜですか?
  2. 978 と 17699 はそこで何をしているのですか?
  3. 17698 がワーカーの場合、17702 と 17703 があるのはなぜですか? (26146も同様)

いくつかのコンテキスト:

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 ワーカーには 1 つのプロセスがありますが、20 スレッド (デフォルト) です。

ユニコーン サーバーには、複数のスレッドを持つマスター プロセスがあり、それぞれが複数のスレッドを持つ 2 つのバックグラウンド ワーカー プロセスをフォークします。

Unicorn ワーカーでメモリ リークが発生している場合は、コード内のメモリ リークが原因である可能性が最も高くなります。

于 2013-08-23T18:09:35.447 に答える