このウェブサイトは販売用です! twiwt.org は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、twiwt.orgが全てとなります。あなたがお探しの内容が見つかることを願っています!
このウェブサイトは販売用です! twiwt.org は、あなたがお探しの情報の全ての最新かつ最適なソースです。一般トピックからここから検索できる内容は、twiwt.orgが全てとなります。あなたがお探しの内容が見つかることを願っています!
最近クックパッドでは、アプリケーションサーバの大半が Rails 2.3 から Rails 3 に置き換わったのですが*1、リリース前のベンチマークの時点ではあまりパフォーマンスが出ず四苦八苦していました。具体的には Rails 2.3 の時と比べ MRI 1.8.7 だとレスポンスタムが200%ぐらい遅い結果でした。Rails 3 になって実装が Merb core を取り入れ疎結合で綺麗になった反面、より多くのオブジェクトと・メモリを利用する様になった影響かと思います。 そこで Ruby インタプリタの変更*2を行い検証をしたところ MRI 1.8.7 (Rails 2.3と比べ) 約200%遅い MRI 1.8.7 -> Ruby Enterprise Edition 1.8.7 2011.03 (tcmalloc 無効) 約180%低速 MRI 1.8.7 -> Ruby Ente
UnicornのプロセスにUSR2シグナルを送ると古いプロセスを残しつつ新しいプロセスが起ち上がるので、ダウンタイムが発生しない。 というのはUnicornの利点の一つとして数えられているが、実は罠なんじゃないだろうかと思い始めた。 USR2を送った直後の状態でプロセスのリストを見ると以下のようになる。(行が長いのでプロセス名の部分だけ抜粋) akahige:# ps aux |grep unico unicorn_rails master -E production -D --path /hoge-app -l0.0.0.0:8080 unicorn_rails worker[0] -E production -D --path /hoge-app -l0.0.0.0:8080 unicorn_rails master (old) -E production -D --path /hog
基本設定、開発環境設定に引き続き、今回はCapistranoを導入して自動デプロイできるように設定。unicorn+nginx周りの設定も変更して快適にデプロイできるようになりました。 リモートリポジトリの作成 リモートサーバーにリポジトリを作成します。 今回は全て同じサーバーでやるので、自分のホームディレクトリ直下に作りました。 $ mkdir -p /home/ntaku/git/sample $ cd ~/git/sample $ git --bare init 後からcapistranoでアプリを配置するためのディレクトリも作成しておきます。 # mkdir /var/www プロジェクト作成 ここからはローカルで。 新規プロジェクトを作成して、テスト用のコントローラーを追加します。 $ rails new sample -d mysql $ cd sample $ rails g
とりあえず動かしてみたのでメモ。 unicornを動かす まずはgemをインストール。 $ gem install unicorn unicornの処理を設定する $ cd <RAILS_ROOT> $ vi config/unicorn.rb <RAILS_ROOT>/config/unicorn.rbはこんな感じ(nginx + unicorn を試してみたからほぼそのまま拝借): # ワーカーの数 worker_processes 2 # ソケット経由で通信する listen File.expand_path('tmp/sockets/unicorn.sock', ENV['RAILS_ROOT']) # ログ stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) stdout_path File.exp
2010.07.09 次世代Ruby on RailsサーバーUnicorn(汎用のRackアプリケーションサーバ)を使ってみた 2010.07.20追記: prefixを指定した運用も可能でした。ご指摘頂きありがとうございます。 2010.07.28追記: 関連記事「RailsサーバUnicornを飼いならす! 運用時の便利技」へのリンクを張りました。 Railsサーバはたくさんあってややこしいですね! 最近さらにUnicornというものが頭角を表してきたようで、Twitterやgithubも使っているようなので使ってみましたので、特徴や使い方などレポートしてみたいと思います。 このブログの他にもEngine Yardのブログ記事「Everything You Need to Know About Unicorn」やgithubの記事「Unicorn!」が非常に参考になると思いますので、
方針 手元(Ubuntu)で開発して、サーバ(Ubuntu)にデプロイ出来るrails 3.1動作環境を作るのが目標 プロジェクト毎にユーザを作成する (各ライブラリをプロジェクト毎にbundlerで管理、デプロイをするため) 同様の理由でrbenvを使って各ユーザ毎にrubyのバージョンを管理 構成 静的なファイルへのリクエストは直接nginxで返す構成をとります(railsのpublic配下のディレクトリにあるファイル、適宜nginxのconfigに設定を追加する必要あり)。またrails3.1からAsset Pipelineが導入されたため/assets/〜に関するリクエストに関してもnginxで直接返すようにします。加えてnginx <=> unicorn間の接続にはUnix Domain Socketを用います。イメージを図にすると下記のようになります。 unicorn gith
いやぁ・・・Rails3はいいですね(`・ω・´) b Rails2とはなんだったのか・・・というレベルの完成度で、 なんとなく納得しないままRails2を使っていた私も、 Rails3になってからはバリバリに使いまくりです*1 そんなRailsを動かすAppサーバとして、 以前から定番になっていたのがpassengerでして、 私もApacheやnginxと組み合わせて使ってました*2 ただ、最近よく耳にするのがnginxにunicornを組み合わせた構成です http://unicorn.bogomips.org/ 前々から気になっていたものの、なかなか手をつけられなかったのですが、 仕事でもプライベートでもちょうどRails3アプリをリリースするタイミングだったので、 nginx+unicornの環境を試してみました なお、非常に細かな解説がある良記事がありますので、 ぜひそちらを先
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く