Bestrubyが好き。技術の話とスタートアップに興味があります。この広告は、90日以上更新していないブログに表示しています。Ruby現在開発を進めていたアプリで、スクレイピングをするためにワーカーに処理を投げるということを行なっていました。その際にSidekiqを使用していたのですが、Sidekiqのワーカープロセスが増殖してサーバーのメモリを食い殺す。いう自体が起きてしまい、エラーが頻発するようになってしまったのでその原因を探ってみました。当初の段階で怪しいと思ったのはSidekiqのconfig/initializers/sidekiq.rbで設定ファイルに不備があるかconfig/unicorn/production.rbでUnicornの起動時にRedisとコネクション結ばせている設定がおかしいかの部分ではないかと見込みを付けてみました。endendんで、調査を進めて行った所あまり、参考に出来そうな記事を見つけられず。MRIのバグやら,Sidekiqのメモリリークだなんやらという話がでてくる。解決出来なそうで不安になる。leak?これも問題は問題だが、今回の状況とはちょっと異なる気がする。わからなくなって来たのでSidekiqのソースコードを読み始める。途中、可愛いメソッド見つけてなごんだ。こんなメソッドも動くんだー。気がついて、Capistranoでのデプロイ時になんかおかしいことが起こってるのではないかと主行ったって調べた所、見事Sidekiqのpidファイルを見つけられずにプロセスを終了させずに新たにプロセスを生成していたことを発見。バグは、capistranoのsidekiqのpidを指定する部分でフルパスを渡していたせいでした。"tmp/pids/sidekiq.pid"これで、しっかりとSidekiqの再起動時にプロセスがkillされるようになったはずなのでメモリを異常にくうことは無くなったはず。Capistranoがkillできなかった場合に止まってくれなかったこと、それに気付かなかったこと。pidファイルのパス指定が賢くなかったことが重なった悲劇でした。悩んでいたのですがようやく解決。してもSidekiqのメソッド可愛いですね。その2前回に引き続きやっていきます。ElasticSearchを実際に使ってサ...2014-01-07Unicorn+RailsアプリをDockerコンテナで動かすUnicorn+Rails入門にでUnicorn+Railsなアプリ(yss44/unicorn_sa...2014-01-06Unicorn+Rails入門Railsでよく使われているサーバーUnicornについて勉強しておこ...2013-12-01Capistrano3で快適デプロイ生活!!Capistrano3で快適なデプロイ生活を目指しています。Railsで定...2013-11-30Railsで定数設定ファイルをgitから外して管理する方法。為替の予測モデルが利益を出すにはどれくらいの精度が必要なの?MF-DFAで金融時系列のフラクタル解析をやってみた。swarmクラスタをrubyのDSLで管理するツールAlgoを作りました転職しました。読者になる24はてなブログをはじめよう!yss44さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。