Autotuner
小さなアプリからShopifyのような大規模アプリまで適応できるようになっているが、デフォルトが最適とは限らない 2024.04時点で19個のパラメーターがありチューニングが難しいうえ、Rubyのバージョンアップによって非推奨になったりパラメーターが増えたりする GC実行中はstop the world
Shopifyの事例
tuning the garbage collector decreased the 99.9th percentile time in garbage collector by 87%, from over 1 second to 0.15 seconds. Similarly, in Storefront Renderer, tuning the garbage collector decreased the 99.9th percentile time in garbage collector by 59%, which translated to a 18% reduction in response times.
GCチューニングにより99.9パーセンタイル値が87%削減された
Storefront Rendererでは59%で、18%のレスポンスタイム改善となった 3つの環境に異なるパラメーターのアプリをデプロイする
レスポンスタイムは、負荷、トラフィック パターン、データベースとキャッシュの応答時間などの要因によって大きく異なる可能性があるので、2つの異なる期間にわたるチューニングの影響を正確に比較することは困難 2. Stable : GCチューニングあり。パフォーマンスが大幅に向上すると期待
3. Experimental : Autotuner からのチューニング提案を1つずつ適用する
機能
たとえばRails起動中は多くのオブジェクトが割り当てられるためヒープが増大し、GCが頻繁に起きる