インフラをチョメチョメしている佐野です。今日はRubyを現最新バージョンの2.3.1にアップデートしたのでその効果について書きます(2.0、とっくにEOLですしね...)。gemのバージョンアップはserizawaニキがやってくれました。結論から言いますと、
- CPU使用率が劇的に下がり、メモリ使用率が少し上がった。
- サーバ台数削減できる。
です。
CPU
9/6の昼過ぎくらいに2.3に切り替えたのですがそれ以降、CPUが下がっていることがわかります。
メモリ
メモリについては使用率が上がっています。
- 2.3
- 2.0
何が使っているのかというと、Ruby2.3なプロセスのメモリ使用量が全体的に増えました。次のtopコマンドは左ペインが2.3、右ペインが2.0なのですが、rubyないしbundleとなっているものがunicorn, sidekiqになります。これら全般的に2.3の方がメモリ使用量が多いです。 ちょっと気にしていたら、TLにてhttps://github.com/ko1/nakayoshi_forkなるものがあると教えていただいたのですが、まだ試していません。
性能
簡易的に測定しました。ヘルスチェックパス(DBアクセスあり)に10000発のHTTP GETを投げてみた際の処理時間です(3回ほど試行)。2.3選手の方が3回ともかなり早い結果となりました。
- 2.3
counts: 10000 total time: 120.01s counts: 10000 total time: 128.66s counts: 10000 total time: 120.59s
- 2.0
counts: 10000 total time: 207.34s counts: 10000 total time: 199.82s counts: 10000 total time: 230.72s
なのでバージョンageていったらいいと思います。簡単ですが以上です。
おわり