Ruby 2.6.1 で Discourse の高速化が実現!

本日は一般的なパフォーマンス調査を行っており、Ruby の新バージョン(2.6.1)がメモリ使用量を削減し、Discourse の処理速度を向上させていることに非常に驚かされました。

特に、Discourse bench を確認すると、RSS は 293332 バイトから 262140 バイトに削減されています!

中央値の応答時間

ルート 2.5.3 (ms) 2.6.1 (ms) 変化
categories 41 39 4.88%
home 46 43 6.52%
topic 54 48 11.11%
categories_admin 70 65 7.14%
home_admin 72 67 6.94%
topic_admin 82 77 6.10%

75 パーセンタイル

ルート 2.5.3 2.6.1 変化
categories 42 41 2.38%
home 50 46 8.00%
topic 59 51 13.56%
categories_admin 75 76 -1.33%
home_admin 78 77 1.28%
topic_admin 85 83 2.35%

90 パーセンタイル

ルート 2.5.3 2.6.1 変化
categories 49 52 -6.12%
home 56 56 0.00%
topic 62 61 1.61%
categories_admin 82 81 1.22%
home_admin 84 82 2.38%
topic_admin 93 92 1.08%

99 パーセンタイル

ルート 2.5.3 2.6.1 変化
categories 58 81 -39.66%
home 81 108 -33.33%
topic 76 88 -15.79%
categories_admin 105 132 -25.71%
home_admin 115 132 -14.78%
topic_admin 123 142 -15.45%

2.6.1 へのアップグレードには少し時間がかかります。おそらく 2〜3 ヶ月以内に切り替える予定です。また、rubybench.org でこれらの結果を検証する必要があります。とはいえ、これらの初期結果は非常に有望です。

通常は 7% の改善が見込めますが、100 回に 1 回のリクエストでは 15〜40% の遅延が発生します。私の解釈では、ランタイム自体は高速化しましたが、メジャー GC の時間が少し遅くなっているようです。

「いいね!」 37