そのpreloadは必要?──見過ごされたpreloadが技術的負債として爆発した日

ActiveRecordのpreloadはN+1対策の常套手段です。しかしその便利さの裏で、いつしか誰もが見直さなくなった事前読み込みは静かに負債となり、私たちのRailsアプリケーションを全社的な障害に追い込みました。
私が所属している会社のアプリケーションでは、とある1リクエストが450MB超のメモリを消費し、サーバーはOut Of Memoryで実行停止に。原因は、プロダクトの成長過程で「見過ごされてきた」過剰な事前読み込みでした。
本セッションでは、Railsアプリケーションをより多くのユーザにスケールさせる中で生じたこのような技術的負債に対し、なぜ気付けなかったのか、そしてそれにどのように戦っていったのかを実例を元にご紹介します。

Speaker

mugi

mugi

株式会社ギフティでWebエンジニアをしています
エンジニア3年目の自由気ままに行きてる若造です