Rails: RedisキャッシュとRackミドルウェアでパフォーマンスを改善(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Optimize Rails performance bottleneck with Redis caching and Rack middleware 原文公開日: 2018/02/05 著者: Paweł Urbanek Rails: RedisキャッシュとRackミドルウェアでパフォーマンスを改善(翻訳) パレートの法則によると(少々誇張あり)、Railsアプリにおけるパフォーマンス問題の95%は、エンドポイントのわずか5%で発生していることになります。本記事では、シンプルなRedisキャッシュ技法とカスタムRackミドルウェアを用いて、私のRailsアプリでエンドポイントのボトルネックを500%以上改善したときの方法について解説いたします。 500%を上回るパフォーマンス改善 ベンチマークは、Macbook Pro 2015(RAM 16GB、2.2 GHz Intel Core i7)でSiegeを使いました。productionのデータベースをコピーしたRailsアプリをproductionモードでローカル実行し、Pumaサーバーをワーカー2つ(各16スレッド)の状態でベンチマークを実施しました。Siegeの設定は次のようにしました。 siege –time=60s –concurrent=20 達成できた改善結果を知りたい方はこの先をお読みください。 パフォーマンス最適化前のRails 最適化作業を開始する前の詳細なパフォーマンスベンチマークは次のとおりです。 Transactions: 5489 hits Availability: 100.00 % Elapsed time: 59.47 secs Data transferred: 868.35 MB Response time: 0.22 secs Transaction … Continue reading Rails: RedisキャッシュとRackミドルウェアでパフォーマンスを改善(翻訳)