タグ

unicornに関するmassiromoheのブックマーク (4)

  • キャッシュしたデータが消える!?prefork型HTTPサーバーUnicornでドはまりしたメモ - うなの日記

    HTTPサーバーUnicornを使っていてドはまりしたのでメモ。 主に、Unicornで動かすRackアプリでの変数スコープとpreload_appについて。 サマリ Uncornは、RackアプリケーションのためのHTTPサーバーです。 HTTPリクエストを、メインプロセスからforkした子プロセスで処理するアーキテクチャが特徴。 スレッドとかは使いません。 forkした子プロセスは、それぞれ別のメモリ空間を持つので、 HTTPリクエストの処理間で、状態(変数の値)が共有されません。 ある処理で変数の値を変更しても、別の子プロセスで処理しているHTTPリクエストでは変数値は変わりません。 ただし、子プロセスが同じ場合は、状態が引き継がれます。(処理が終わった子プロセスは、次のHTTPリクエストで使いまわされます) 状態が共有されないので、スレッドセーフティを考慮した実装にする必要もありま

    キャッシュしたデータが消える!?prefork型HTTPサーバーUnicornでドはまりしたメモ - うなの日記
  • UnicornとかRainbows!とかの話 : As Sloth As Possible

    随分長いことブログ放置してしまったのだけどネタ見付けたので久々の記事。 UnicornはPassengerより遅かった? なんかTwitterで「アクセス少ないときはPassengerよりUnicornのが速いのに、アクセス多くなってきたらその逆になった」って話をみかけたので、それ単にUnicornのworkerが足りないんじゃないの、と返したのだけど、どういうことかという話を少しまとめる。 まず、Unicornのworkerは1プロセスにつき1度に1リクエストしか処理しない。だから例えば、凄い大雑把な計算だけど、平均50msくらいでレスポンスを返すアプリだとすれば、1workerは20req/secくらいは返せるかなと見積もって、ピーク時に100req/secくらいアクセスがありそうだったらworkerを5個くらい立てとくかな、足んなかったらもうちょっとかな、みたいに考える。実際どんくら

    UnicornとかRainbows!とかの話 : As Sloth As Possible
  • Unicornの自動起動設定|デロイト トーマツ ウェブサービス株式会社(DWS)公式ブログ

    先日、OS起動時にUnicornが自動起動するよう設定する機会があり、その際にUnicornの停止や再起動についておさらいした覚え書きである。 前提 Unicornの停止方法 公式ドキュメントに記載されているが、要約する。 Unicornには停止用コマンドなどは用意されていない。Unicornはひとつのmasterプロセスと複数のworkerプロセスからなるが、masterプロセスにシグナルを送信することで停止できる。 送信シグナルによって以下の違いがある。 QUIT:gracefulな終了(workerの処理待ちをする。) INT/TERM:強制終了(強制的にworkerプロセスをkillする。) ※一般的に、killコマンドでシグナル指定しなければTERMが送信され、Ctrl+Cでプロセスを止めればINTが送信されるが、INT/TERMのいずれでも停止処理は同じである。 http://

  • [再起動など] Unicorn | Rails3

    インストール rails server で起動するデフォルトのサーバは WEBrick で実用レベルではありません。代わりに Unicorn を利用します。 # gem パッケージに含まれていなければ追加します % vi Gemfile ... gem 'unicorn' % bundle update 設定 config/unicorn.rb として設定ファイルを作成します。 worker_processes 2 stderr_path File.expand_path('../../log/unicorn/stderr.log', __FILE__) stdout_path File.expand_path('../../log/unicorn/stdout.log', __FILE__) pid File.expand_path('../../log/unicorn/unicorn.

  • 1