sidekiq proを1年ほど使ってみて良かったところ、困ったところ | 新宿.rb 29th...
TRANSCRIPT
[Confidential] © 2013 Actcat, Inc. 1
Sidekiq Proを1年ほど使ってみて 良かったところ、困ったところ
[Confidential] © 2013 Actcat, Inc.
Sidekiqとは
n 1プロセスで大量のスレッドを作成、ジョブを処理できるジョブキューシステム
n Sidekiq -‐ A full-‐featured background processing framework for Ruby. It aims to be simple to integrate with any modern Rails application and much higher performance than other existing solutions. https://github.com/markets/awesome-‐ruby
n http://sidekiq.org/
2
[Confidential] © 2013 Actcat, Inc.
Sidekiq vs Delayed_job vs Resuqe
3
[Confidential] © 2013 Actcat, Inc.
うちの SideCI では Sidekiq を選択
n GitHub Comments APIを叩きまくるジョブを何個も同時に爆速で回したかった
n 1プロセス当たり処理できるジョブ数・速度が早いらしいSidekiq使った
n 処理数は少ないジョブしかないレポジトリもSidekiqに統一した
4
[Confidential] © 2013 Actcat, Inc.
良かったところ
n 早い! l タスクを小さく分割してあるタスク(ジョブ)などではスレッド数の多さによる速さが際立つ
n 割りとデファクトで情報も多い l ActiveJobのrailsguideなどでもbackendの設定サンプルに一番に書いてあったり
n プラグインも充実
5
[Confidential] © 2013 Actcat, Inc.
充実のプラグイン
n Sinatraで書かれたWebUI n WebUIのDevise連携 n Nagios連携 n Queue Latency用のエンドポイント n Etc…
6
[Confidential] © 2013 Actcat, Inc. 7
困ったところ
[Confidential] © 2013 Actcat, Inc.
Sidekiqの困ったところ
n 1プロセスで最大100スレッドぐらいまで処理できるすごい子です。 l メモリやデータベース側などが100スレッドに耐えられるだけ強力であれば、まじ爆速で処理できます
n でも、100ジョブ処理しているプロセスがDeadしたら… l 100ジョブが永遠に失われます
8
[Confidential] © 2013 Actcat, Inc.
永遠に失われる 100ジョブ
9
[Confidential] © 2013 Actcat, Inc.
sidekiq workerはupstartとかが 立ち上げてくれるけれど、 ジョブは返ってこない
10
[Confidential] © 2013 Actcat, Inc.
((ヾ(≧皿≦;)ノ_))きぃぃぃぃっ! ジョブ返せよう!
11
[Confidential] © 2013 Actcat, Inc.
+怖い話: あなたのジョブも実は 亡くなっているかも…
n 失われたジョブが失われたという情報は誰も持っていない(あなたが独自に管理していないかぎり)
n Bugsnag, Airbrake, Sentryとかの例外通知系サービスも例外を通知してこない(Processがdeadした場合、多くの場合、例外を通知するまえにworkerがdeadした場合)
n Sidekiqはupstartに自動再起動させてたのでサービス停止とかにはならず、気づきづらい
12
[Confidential] © 2013 Actcat, Inc. 13
SIDEKIQ PRO : RELIABILITY
[Confidential] © 2013 Actcat, Inc.
RELIABILITY
n RedisのRPOPLPUSHを使っていて、キュー取り出し時にRedisにバックアップを作ってくれるので、キューを取り出し、処理している間に、プロセスが死亡したり、Redisが死亡しても、そこからキューを復元して処理してくれる
14
[Confidential] © 2013 Actcat, Inc. 15
[Confidential] © 2013 Actcat, Inc.
困ったところ…
n Sidekiq Proを買うと困ったところが低減
n \(^o^)/ Sidekiq Pro\(^o^)/
16
[Confidential] © 2013 Actcat, Inc. 17
おまけ / 他のPRO機能の紹介
[Confidential] © 2013 Actcat, Inc.
BATCHES ジョブをバッチにまとめ、バッチの管理
18
[Confidential] © 2013 Actcat, Inc.
SUPPORT 作者によるメールサポートが着く
19
n 知っていれば教えてくれる
n 知らなければ知らないって教えてくれる
[Confidential] © 2013 Actcat, Inc.
Sidekiqに関するまとめ
n 処理早い。デファクトで機能充実。ActiveJob対応
n Redisとの接続が死んだり、Sidekiq Workerが死んだりするとジョブが失われる
n ジョブが失われるのが怖い人は年額$950払うと失われなくて済む(約11万4000円)
20