おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

第19回 ginza.rb ミートアップ

第19回目の ginza.rb ミートアップを開催しました。

Ginza.rb 第19回 だれが一番?Railsアプリサーバ徒競走!&Ruby2.2について話そう - Ginza.rb | Doorkeeper

raptor と rhebok のパフォーマンスをみる

第17回ミートアップ で、Rack サーバの比較をしましたが、その時はまだ raptor の実装が公開されていませんでした。

今回は raptor(Passenger5) のベンチマークがとれるようになったので、ベンチを取ってみました。さらに、unicorn の2倍早いという rhebok というサーバも登場したので、それも一緒に。

@y_yagi さんが、第17回に利用したengine yardさんのアプリを使ってベンチをとってくれました。多謝!

結果としては、比較対象としてベンチをとった unicorn と Passenger4 が安定しているなという印象。rhebok や raptor はまだ不安定な気がします…。

あとは、raptor の sleep(sleep 1 してから render するアプリ)の結果の爆速ぶりが異常。多分HTTPサーバのレベルでキャッシュをして、それを返しているのだと思いますが、現時点でキャッシュを返す条件のドキュメントがないので詳細がわからず。

続いては raptor のキャッシュ機能、Turbocaching についてのブログ記事があったのでその内容についてシェア。

Researching a potential new form of HTTP caching optimization - Phusion Blog

簡単にまとめると、Cookieの"一部の"値を利用して、ユーザ種別を判別し、ユーザに応じたキャッシュを返すようにして高速化を図っています。Varnish などのキャッシュ−サーバにも似たような機能があるのですが、Cookie全体の値を利用するため、サードパーティーCookieを利用したアプリなどでは想定するような高速化はできないとのこと。

この機能を使うと、

  • 大多数の人が同じ画面をみるアプリ(ブログなど)
  • 一部だけがユーザ個別のアプリ(ログインユーザの名前の表示部分だけが異なるアプリなど)

の高速化が見込めます。詳細は元記事を参照してください。 たぶんこの記事以外にもTurbocachingの機能があると思うので、それに期待しています。

Ruby 2.2.0 について話す

Ruby 2.2.0 の関連の記事を読みました。

個人的には

{"hoge": "fuga"}

という書き方ができるようになったのが嬉しいです。

次回

次回は2/17(火)です。お題はコーディング規約です。いろんな会社の規約を見ながらワイワイ話しましょう!