SREの深尾です。kurashiru [クラシル] のインフラを担当しています。 タイトルのとおり、クラシルのwebサイトではRailsを使っており、1サーバあたり10,000人程度のアクセスに耐えることができます。実際には余裕を持たせて5,000人/サーバを目安にスケールさせており、TV CMをガンガンやったり、国内外のTV番組で特集されたり、芸能人にSNSで拡散されても動じませんが、実は過去に1度だけWebサイトがダウンしてしまったことがあります。それは2017年3月11日にSmaSTATION!!というTV番組でクラシルが取り上げられた時のことでした。 以下はその時のリクエスト数を表すグラフです。ダウンしてしまったので計測できなかったユーザの数字は含まれませんがそれでもアクセス数は1分で数万人を超えていました。 それまで、Webサイトの負荷対策はあまり行っておらず、2台のWebサーバ

2013-01-20 今までやっていなかったのか…というのも驚きだけど。Webサーバとして使っているNginxの設定がうまくいかなくて、日記関連のデータはCSSやJavaScriptも含めて、すべてバックエンドのUnicornサーバで返すようにしていた。これでは同時接続に強いNginxを使っている意味がないので、静的ファイルはWebサーバが返すようにした。最近はtDiaryプラグインでJavaScriptを使うものも増えてきたので、フロントエンドのNginxで返してあげれば、バックエンドのUnicornの処理はだいぶ軽くなる。nginx.confの設定ファイル(基本設定は除く)はこうなった。 upstream www.machu.jp { serverlocalhost:8080; } server { root /var/www/www.machu.jp; index index.h
先月、heroku の推しサーバが unicorn からpuma に変わったという発表がありました。unicorn だとスロークライアントの影響を受けやすいというのが理由なようです。 もう少し詳しく調べてみましょう。 そもそもスロークライアントってなに その名の通り遅い回線のクライアントです。3G環境のモバイル端末などが該当します。 「unicorn だとスロークライアントの影響を受けやすい」とは unicorn はプロセスモデルのサーバであり、blocking I/O モデルを採用しています。つまり、クライアントとの通信中プロセスが専有されるということです。 例えば unicorn がワーカプロセスを3つ立ち上げていて、そこへ通信完了に10分かかるようなスロークライアントが3つ接続されたら…、続くクライアントはスロークライアントの通信が完了するまで実行を待たなければならなくなります。プ
20 Nov 2014 This post is based on the talk of the same name I gave at the Arrrrcamp conference in Ghent, Belgium on October 2nd, 2014. You can find the slides here and the video recording here. Unicorn is a webserver written inRuby forRails and Rack applications. When I first usedit I was amazed. This is magic, I thought.It had to be. Why? Well, first of all: the master-worker architecture. Un
_ SakuraVPS で Ubuntu14.04 +nginx + unicorn + tDiary4.1.1 構築 新年あけましておめでとうございます。本年もどうぞよろしくお願いします! ということで年末にOSごと壊してしまったので、年末から年始にかけて0から再構築。まちゅさんから「式年遷宮ですね」と言われたけど確かにその通り。昔tdiaryをCGIで動かしてたころの設定も消せたし、結果として大掃除になりました。それにしてもLinuxマシンの構築は何回もやってるけど、そのたびに使うミドルウェアは変わっていて、今回はとうとうapacheを使わなくなった。 社会人になったばかりの頃にunix技術を教えてもらったり学んだりしてきたけど、間違いなく一番長く使ってる技術だし、これからも長く使うのだろう。(その次はRubyかも。) 次回の式年遷宮はubuntu 14.04 のサポート期限終了の

Everytime we're fixing a bug or adding a new feature, we wantit togo live very fast to have happy users at gigmit. Thats why we really love to deploy several times a day. While running a pretty standardRails stack with Unicorn and handling deployments with Capistrano, we always had a few seconds when the Unicorn workers were restarted. We did this only at night, becauseit wasn't always sure[1]
MRIRuby hasgotten a lot faster since I ran my last benchmark, soit’s time for an update. Methodology The benchmark consists of hitting a single endpoint on arails (4.1.1) app in production mode for 30 seconds. The endpoint reads a set amount of posts from a Postgresdatabase and the renders them in ahtml view using erb, without any view caching. The purpose of the benchmark to get an idea of
README.md 目的AWSのEC2上でRails+Unicorn+Nginxを実現する 前提 OSはAmazonLinux AMIを使用する 必要なライブラリをインストールsudo yum -y install gccsudo yum -y install makesudo yum -y install gcc-c++sudo yum -y install zlib-develsudo yum -y install httpd-develsudo yum -y install openssl-develsudo yum -y installcurl-develsudo yum -y installsqlite-devel gitインストールsudo yum install gitruby-buildインストール git clone git://github.

Introducing Unicorn If you are aRails developer, you’ve probably heard of Unicorn, a HTTP server that can handle multiplerequests concurrently. Unicorn uses forked processes to achieve concurrency. Since forked processes are essentially copies of each other, this means that theRails application need not be thread safe. This is great becauseit is difficult to ensure that our own code is thread

こんにちは。Forkwell の中の人、大岡(おおか)です。前回の記事「なぜ Forkwell はリリース初日にサーバダウンを繰り返したのか」の反響が大きく、一時はホッテントリに入るほどで正直驚きました。Twitter や ブックマークコメント でご意見も多くいただいたので、今回はそれに対するフォローの記事を書きたいと思います。 一番多かったご意見は、本当に Unicorn が悪かったのか。worker_proccesses の設定値が小さすぎただけじゃないのか。 ちゃんと原因究明してないのに、Unicorn を悪者にするのは Unicorn がかわいそうです(´;ω;`) といったものでした。 500エラーが頻発し出した午前11時すぎから、Passenger への入れ替えを決断した午後5時くらいまでの約6時間、私たちが行っていたのは Webサーバ、アプリケーションサーバ、DBサーバの
こんな感じで データベースはmysqlruby は rvm で導入する web サーバは apache + unicorn http://example.jp でバーチャルホストredmine 専用ユーザで実行 以下の手順の前提条件redmine の実行ユーザ名はredmineMySQL について root ユーザのパスワードは P@ssword 実際にはredmine が接続するDB ユーザredmine を作成する。パスワードは $ecret ドメイン名は http://example.jpredmine へセッション等のためのシークレットフェーズを設定する必要がある シークレットフェーズは VeryVeryVeryVeryVerySecretPhase に設定しているredmine ユーザの作成redmine は、このユーザで実行させる [root@www20

Capistrano tasks for starting unicorn.rb P ���U � ��U set :rails_env, :production set :unicorn_binary, "/usr/bin/unicorn" set :unicorn_config, "#{current_path}/config/unicorn.rb" set :unicorn_pid, "#{current_path}/tmp/pids/unicorn.pid" namespace :deploy do task :start, :roles => :app, :except => { :no_release => true } do run "cd #{current_path} && #{try_sudo} #{unicorn_binary} -c #{unicorn_confi

Twitterの大規模システム運用技術、あるいはクジラの腹の中(後編)~Twitterのサブシステム「Unicorn」「Kestrel」「FlockDB」 米サンタクララで行われていたWebサイトのパフォーマンスと運用に関するオライリーのイベント「Velocity 2010」の、Twitterのシステム運用について説明するセッション「In the Belly of the Whale: Operations atTwitter」(クジラの腹の中:Twitterでの運用)を紹介をしています。 この記事は「「Twitterの大規模システム運用技術、あるいはクジラの腹の中(前編)~ログの科学的な分析と、Twitterの「ダークモード」」の続きです。Twitterのサブシステム「loony」「Murder」「memcached」 ここからはTwitterのサブシステムについて紹介しよう。 T

前回ブログで紹介したRailsサーバUnicornくんを運用し始めて結構時間が経ちました。 サービスを落とさないであるとか、システムの安定性を確保するために、 ちょっとしたユーティリティを作ったり監視ソフトMonitの設定を行ったりしていました。 みなさんのお役に立つかわかりませんが、弊社でUnicornと組み合わせて運用に利用しているツールや設定をブログに掲載してみたいと思います。 もっといいやり方がありましたら、ぜひコメント欄でご紹介頂ければと思います。 ダウンしたら自動的に再起動 これはMonitで行っています。 もちろん同内容の監視ツールGodでも可能だと思いますが、以前設定した経験があって設定が楽そうだったので、Monitでやってみました。(事実楽でした) check process unicorn with pidfile "/path/to/rails/tmp/pids/un

いやぁ・・・Rails3はいいですね(`・ω・´) bRails2とはなんだったのか・・・というレベルの完成度で、 なんとなく納得しないままRails2を使っていた私も、Rails3になってからはバリバリに使いまくりです*1 そんなRailsを動かすAppサーバとして、 以前から定番になっていたのがpassengerでして、 私もApacheやnginxと組み合わせて使ってました*2 ただ、最近よく耳にするのがnginxにunicornを組み合わせた構成です http://unicorn.bogomips.org/ 前々から気になっていたものの、なかなか手をつけられなかったのですが、仕事でもプライベートでもちょうどRails3アプリをリリースするタイミングだったので、nginx+unicornの環境を試してみました なお、非常に細かな解説がある良記事がありますので、 ぜひそちらを先
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く