LoginSignup
6
1

More than 5 years have passed since last update.

rails5にするとパフォーマンスが向上するのかチェックしてみた。

Posted at

rails5アップデートでサイトパフォーマンスは向上するのか。

2014年ごろにrails4で作られたウェブサイトを rails5.2 までアップデートしてみました。

環境は少し特殊でmysqlとmongoの両方を用いています。

rails4
Rails version             4.1.4
Ruby version              2.3.4
RubyGems version          2.6.13
Rack version              1.5.5

----- databases -----
mongoid version           4.0.2
Active Record version     4.1.4
rails5
Rails version             5.2.0
Ruby version              2.3.4
RubyGems version          2.6.13
Rack version              2.0.5

----- databases -----
mongoid version           6.4.1
Active Record version     5.2.0

テストサーバー情報

サーバはAWSを用います。

こちらからペネトレーションテスト(侵入テスト)を行う事を事前にAWSに申請しないと怒られますので申請を忘れずに。
https://aws.amazon.com/jp/security/penetration-testing/

スペック vCPU メモリ(GiB) SSD ストレージ(GB) 専用 EBS 帯域幅 (Mbps)
m4.large 2 8 EBS のみ 450

rails4環境rails5環境のどちらもこのインスタンスで実験を行います。
構成はnginx unicornで動作しております。

速度検証 Apache Bench編

Apatche BenchについてはこちらのQiita記事をご参考にどうぞ
https://qiita.com/flexfirm/items/ac5a2f53cfa933a37192

今回は以下の設定でチェックします。

ab -n 1000 -c 100

Rails4環境

合計時間:92.265 seconds

              最速  中央値   最大
接続時間:       28   75     673
処理時間:      561  8958   10915
待ち時間:      332  8929   10879

合計時間:      666  9041   10947

Rails5環境

合計時間:123.780 seconds


              最速  中央値   最大
接続時間:       28    35     651       # 53%の高速化
処理時間:      525   12154   13493       # 35%の低速化
待ち時間:      514   12140   13483       # 35%の低速化

合計時間:      658   12194   13525       # 26%の低速化

検証結果パフォーマンスが25.4%落ちた

rack mini profilerで原因を探る

まずはSQL発行数と実行時間、Rails5になってから11クエリ減少したが、実行時間が45ms伸びてしまっている。

Rails4環境:43クエリ(70ms)
Rails5環境:32クエリ(115.6ms)

renderしているものが確実に増えた。

ブラウザキャッシュの影響も多少はあると思いますが、明らかに読み込んでいるファイルが増えました。
低速化の影響はview側のrenderの影響が強いと思われます。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1